我正在编写我的方法来使用扫描仪读取一个小文件。起初我是用一个更大的文件来做它但它没有工作所以我用一个小文件测试它仍然无法正常工作。我的文件有以下几行..
1,0,.
5,1,.
10,2,.
我的代码是
try
{
Scanner mapScanner = new Scanner(myFile);
while(mapScanner.hasNextLine()) {
String[] parts = mapScanner.nextLine().split(",");
System.out.printf("%s %s %s\n",parts[0],parts[1],parts[2]);
}
mapScanner.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
当我运行程序时,我得到......
1 0 .
5 1 .
10 2 .
1 0 .
5 1 .
10 2 .
永远直到我终止程序。我不明白这里的问题,我是否使用hasNext
或hasnextLine
未检测到文件的结尾。
编辑类的整个代码,整个文件是上面给出的3行
public class FileHandler {
private char[][] fileMapArray;
public char[][] loadMap(){
fileMapArray = new char[36][54];
int column;
int row;
char symbol;
File myFile = new File("/home/issac/NetBeansProjects/HWK2/src/main/simpleNot.map.txt");
try
{
Scanner mapScanner = new Scanner(myFile);
while(mapScanner.hasNextLine()) {
String[] parts = mapScanner.nextLine().split(",");
System.out.printf("%s %s %s\n",parts[0],parts[1],parts[2]);
}
mapScanner.close();
}
catch (FileNotFoundException e)
{
e.printStackTrace();
}
return fileMapArray;
}
public FileHandler() {
}
}