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'。我已經試過你的代碼,並且它能正常格式化文本文件(單行,沒有額外的空白)。 –