這是我發現的一些代碼,用於在2D數組中讀取數據,但是我遇到的問題是隻有在閱讀數字列表:Java從文件中讀取二維數組,用逗號分隔的數字
73
56
30
75
80
ect..
我要的是能夠讀取那些結構類似這樣的多行:
1,0,1,1,0,1,0,1,0,1
1,0,0,1,0,0,0,1,0,1
1,1,0,1,0,1,0,1,1,1
我只是想基本上導入每一行作爲一個數組,而像一個數組構造它們在文本文件中。 我讀過的所有東西都說要使用scan.usedelimiter(「,」);但在任何地方我嘗試使用它,程序會直接回復「回答」轉換錯誤號碼「。如果任何人都可以幫助,我將不勝感激。我還看到了一些關於使用緩衝讀取器的分割的信息,但我不知道哪些會更好地使用/爲什麼/如何。
String filename = "res/test.txt"; // Finds the file you want to test.
try{
FileReader ConnectionToFile = new FileReader(filename);
BufferedReader read = new BufferedReader(ConnectionToFile);
Scanner scan = new Scanner(read);
int[][] Spaces = new int[10][10];
int counter = 0;
try{
while(scan.hasNext() && counter < 10)
{
for(int i = 0; i < 10; i++)
{
counter = counter + 1;
for(int m = 0; m < 10; m++)
{
Spaces[i][m] = scan.nextInt();
}
}
}
for(int i = 0; i < 10; i++)
{
//Prints out Arrays to the Console, (not needed in final)
System.out.println("Array" + (i + 1) + " is: " + Spaces[i][0] + ", " + Spaces[i][1] + ", " + Spaces[i][2] + ", " + Spaces[i][3] + ", " + Spaces[i][4] + ", " + Spaces[i][5] + ", " + Spaces[i][6]+ ", " + Spaces[i][7]+ ", " + Spaces[i][8]+ ", " + Spaces[i][9]);
}
}
catch(InputMismatchException e)
{
System.out.println("Error converting number");
}
scan.close();
read.close();
}
catch (IOException e)
{
System.out.println("IO-Error open/close of file" + filename);
}
}
你爲什麼不把整個東西看成一個字符串。將字符串拆分爲「,」,然後將其轉換爲二維數組? –
在您的catch語句中,而不是僅打印出「Error conversions number」,使用e.printStackTrace()。或者System.out.println(e)。這樣你可以真正看到錯誤是什麼。 –
你的問題解決了嗎? – gowtham