使用Scanner一次读取文件夹中的所有文件会产生NoSuchElementException

时间:2013-11-13 09:08:39

标签: java java.util.scanner file-handling nosuchelementexception

遵循Java代码:

File folder = new File("/home");
File[] listofFiles = folder.listFiles();
for (j = 0; j < listofFiles.length; j++) {
  File file = listofFiles[j];
  if (file.isFile() && file.getName().endsWith(".ucf")) {
      String content = new Scanner(new File(file.getName())).useDelimiter("\\Z").next();
      for(i=0;i<content.length-10;i++)
      // do something..
      content = null;
  } // close if..
}

抛出

Exception in thread "main" java.util.NoSuchElementException
     at java.util.Scanner.throwFor(Scanner.java:907)
     at java.util.Scanner.next(Scanner.java:1416)
     at c.main(c.java:18)

但是,在我使用Scanner将特定文件读取到字符串content之前,Scanner.next()没有出现此类错误。现在,当我尝试遍历所有文件时,它会出现此异常。

1 个答案:

答案 0 :(得分:2)

当没有更多令牌可用时,会发生

NoSuchElementException

在阅读时试试这个

 if(scanner.hasNext())
 scanner.next();