【发布时间】:2015-03-18 18:51:53
【问题描述】:
我有一段时间没有接触 Java,所以我对一些细节有点生疏。
我正在尝试从一个充满数字的文件中读取它们自己的行。文件中的第一个数字告诉我文件中有多少其他数字,以便我可以适当地调整数组的大小。我试图将这些数字放入一个整数数组中,但在我的返回语句中不断收到“错误:变量数据可能尚未初始化”。我知道这一定很简单,但我一辈子都无法找出我做错了什么简单的事情。
public static int[] numbers(String filename)
{
int[] data;
try
{
FileReader input = new FileReader(filename);
BufferedReader buffer = new BufferedReader(input);
int arraySize = Integer.parseInt(buffer.readLine());
data = new int[arraySize];
for (int x = 0; x < arraySize; x++)
{
data[x] = Integer.parseInt(buffer.readLine());
}
buffer.close();
}
catch(Exception e)
{
System.out.println("Error reading: "+e.getMessage());
}
return data;
}
【问题讨论】:
-
名为data的数组未初始化。使用
int[] data = new int[x]对其进行初始化,其中 x 是它的大小。 -
其实你只需要
int[] data = null;(在最上面)。问题是你在 try 子句中初始化它的部分可能永远不会发生。 -
具体来说,如果
try的第一行失败,它永远不会被设置。您也可以在catch块中初始化它(默认为null或new int[0]) -
感谢您的快速回复!无论如何,rgettman 和 Kritner 的建议都适用于编译。我会玩两个,看看我更喜欢哪一个。对于这么简单的问题,我深表歉意。我有另一个与我发布的几乎相同的旧程序,它就像一个魅力,所以我非常困惑。不过现在已经处理好了!谢谢!
标签: java arrays filereader