如何使用Scanner检查线路末端?

10 java java.util.scanner

我搜索过类似的问题,但没有人帮忙.

考虑一个文件:

你好你好吗?
当时你在哪里?

我希望在每一行结束后进行一些操作.如果我使用next()它,当我到达第一行的末尾时不会告诉我.

我也见过,hasNextLine()但它只告诉我是否存在另一条线.

Hov*_*els 17

考虑使用多个扫描仪,一个用于获取每一行,另一个用于在收到后扫描每一行.我必须提出的唯一警告是,在完成使用后必须确保关闭内部扫描仪.实际上,您需要在使用完毕后关闭所有扫描仪,尤其是内部扫描仪,因为它们可能会增加并浪费资源.

例如,

Scanner fileScanner = new Scanner(myFile);
while (fileScanner.hasNextLine()) {
  String line = fileScanner.nextLine();

  Scanner lineScanner = new Scanner(line);
  while (lineScanner.hasNext()) {
    String token = lineScanner.next();
    // do whatever needs to be done with token
  }
  lineScanner.close();
  // you're at the end of the line here. Do what you have to do.
}
fileScanner.close();
Run Code Online (Sandbox Code Playgroud)