filereader不读取整个文本文件

alen0pnh  于 2021-06-29  发布在  Java
关注(0)|答案(2)|浏览(353)

我希望我的代码读取一个txt文件并打印出每一行,但几乎有一半的行被跳过,看起来是随机的。如何确保读取整个文件?

BufferedInputStream readIt = new BufferedInputStream(new FileInputStream(pBase));
        //pBase is txt File object
        Scanner actualRead = new Scanner(readIt);

        while(actualRead.hasNextLine()){
            System.out.println("Line is : " + actualRead.nextLine());

        }
daupos2t

daupos2t1#

或者..扫描仪可以将文件参数作为输入。。。

Scanner actualRead = new Scanner(pBase); //directly pass the file as argument...
//Although this threatens to throw an IOException..catch  it in try-catch or add to throws...
try {
  Scanner actualRead = new Scanner(pBase);
  while (actualRead.hasNextLine()) {
    System.out.println("Line is : " + actualRead.nextLine());
}
catch (IOException e) {
  System.out.println("err...");
ltqd579y

ltqd579y2#

最简单的方法是使用nio实用程序方法之一,例如 readAllLines .
对于不希望同时加载到内存中的大型文件,可以使用 lines 方法如下:

import java.nio.file.Files;
import java.nio.file.Path;
...
try (var lines = Files.lines(Paths.get(pBase))) {
  lines.forEach(l -> {
    System.out.println(l);
  });
}

相关问题