得到`线程中的异常“main”java.util.NoSuchElementException:No line found`

时间:2016-10-31 01:24:37

标签: java file java.util.scanner

每当我尝试将shipText数组设置为文件中的相应行时,它就会给我

  

主题main中的异常:java.util.NoSuchElementException:找不到行。

为什么会这样?无论我将文件放在工作区的哪个位置,我都会继续得到错误:

Exception in thread "main" java.util.NoSuchElementException: No line found
    at java.util.Scanner.nextLine(Scanner.java:1540)
    at shipPanel.<init>(shipPanel.java:28)
    at shipFrame.main(shipFrame.java:14)

这是我在文件名shipsname-1.dat中读取的代码:

Scanner inputData; 
private String[] shipText = new String[138];
File infile =  new File("shipnames-1.dat");
inputData = new Scanner(infile);

for(int i = 0; i < shipText.length; i++)
{
    shipText[i] = inputData.nextLine();
    System.out.println(shipText[i]);
}
inputData.close();

2 个答案:

答案 0 :(得分:0)

您需要检查Scanner是否有下一个令牌;

while(inputdata.hasNext()){
 //put you statement here
}

答案 1 :(得分:0)

shipnames-1.dat可能有138行,所以你应该得到0到137,而不是0~138, 或者你可以这样做

while (inputData.hasNext()) {
    System.out.println(inputData.nextLine());
}