这是我发现的一些代码,用于在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