BufferedReader in = new BufferedReader(new FileReader(file));
String line;
int[] data = null;
while((line = in.readLine()) != null) {
String[] a = line.split(","); //read in all numbers in file
data = new int[a.length]; //convert those numbers from Strings to ints
for(int i = 0; i < a.length; i++) {
data[i] = Integer.parseInt(a[i]);
System.out.print(data[i] + ","); //testing
}
}
System.out.println();
for(int i = 0; i < data.length; i++) {
System.out.print(data[i] + ",");
}
的文件只是包含1行由逗号分隔的数字,如组成:为什么读取一行后数组的值会发生变化?
5,4,
1,-1,-1,1,1,
1,0,3,4,1,
1,0,2,2,1,
1,1,1,1,1,
程序板条箱仅包含数字的字符串数组,然后创建以相同的顺序的整数数组。但是将字符串更改为整数,然后验证int数组是否包含文件中的值,则输出int数组。
该代码输出:
5,4,1,-1,-1,1,1,1,0,3,4,1,1,0,2,2,1,1,1,1,1,1,
1,1,1,1,1,
正如你可以看到数的第一行,其对应于当块内的打印功能,打印正确。但是当数组迭代并在while块之外再次打印时,突然间它完全不同了,为什么会出现这种情况?该数组应该在while块外部相同。
可以请您确认您的文件的内容。它看起来好像你在一条单独的行上用'1,1,1,1,1'换行。这会导致一个问题,因为每次读取数据都会重新初始化数据。 –
5,4, 1,-1,-1,1,1, 1,0,3,4,1, 1,0,2,2,1, 1,1,1,1,1 , –
如果内容正是你刚发布的内容,你会得到一个'NumberFormatException'。我已经试过你的代码,并且它能正常格式化文本文件(单行,没有额外的空白)。 –