当文件以空行开头时使用扫描仪

时间:2012-10-06 21:55:54

标签: java java.util.scanner

  

可能重复:
  Validating input using java.util.Scanner

我正在阅读目录中的一堆文件。我想使用扫描仪来检查它们中的大多数,但我一直得到NoSuchElementExceptions,我很肯定这是因为有些文件以空行开头。

如何使用扫描仪绕过此功能,以便我可以毫无问题地阅读文件的其余部分?

3 个答案:

答案 0 :(得分:0)

如果您确定第一行是空白的,那么您只需使用:

String line = scanner.nextLine();

跳过第一行。如果这只发生在某些文件中,那么您可以使用以下方法检查内容:

line.isEmpty()

答案 1 :(得分:0)

使用Scanner读取文件的最简单方法应该可以正常工作,类似的方法可以正常工作:

public void getFile(File file) {

    Scanner sc = null;
    try {
        sc = new Scanner(file);
        if(sc.hasNext())
             System.out.println(sc.next());

    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } finally {
        if(sc!=null) sc.close();
    }

}

即使第一行为空白也没有问题

答案 2 :(得分:0)

你确定这是给你问题的空白行吗?

我刚用一个非常小的Java程序对它进行了测试,我认为你没有检查它是否有下一行。

尝试使用hasNext()方法:

while (scan.hasNext()) {
//Your code
}

这会在尝试解析文件之前检查文件中是否有nextLine。