除非在使用相对路径时修改了文档,否则抛出IO NoSuchElementException

时间:2015-12-12 21:20:17

标签: java io

我试图在一个看起来像这样的文件中读取一些数字:

TESTFILE.TXT:

4
900 1100
1000 1200
400 1100
5000 5100 

主:

import java.io.*;
import java.util.*;

public class Test {
    private static int[][] data;

    public static void main(String[] args) throws FileNotFoundException, IOException{

        File file = new File("TestFile.txt");

        Scanner scanner = new Scanner(file);
        int length = scanner.nextInt();

        data = new int[length][2];

        for(int i = 0; i < length; i++) {
            data[i][0] = scanner.nextInt(); //throws exception here
            System.out.print( data[i][0] + " ");
            data[i][1] = scanner.nextInt(); 
            System.out.print( data[i][1] + "\n");
        }


        scanner.close();
    }
}

如果我运行它,它可以正常工作。但是,如果我尝试再次运行它,它会给我java.util.NoSuchElementException。如果我修改文件(通过添加空格或其他内容),程序将再次运行。

为什么会这样? (并且还解释了我可以做些什么来解决这个问题,因为一次又一次地重新保存文件会变得很烦人。)

如果你想知道我在net beans上运行它。

编辑:

在做了一些实验之后,我注意到只有当我给它一个相对路径而不是绝对路径时才出现这个问题。我最初通过netbeans项目属性添加了该文件,并将该文件添加为参数。也许这是问题的一部分?有没有办法保持相对路径,但让问题消失?

0 个答案:

没有答案