文件输入仅从输入文件中读取最后几行

时间:2019-01-06 16:06:43

标签: java file bufferedreader

这是一个简单的代码,可从.txt文件中读取所有内容。不太清楚是什么问题。我尝试使用其他测试文件,但该文件仅读取第2行和第4行,后跟import java.io.*; import java.util.*; public class FileInput { public ArrayList<String> readFile() { ArrayList<String> content = new ArrayList<>(); try { File file = new File("input.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); String line = null; while (br.readLine() != null) { line = br.readLine(); content.add(line); System.out.println(line); } } catch (FileNotFoundException e) { System.out.println("File could not be found. " + e.getMessage()); } catch (Exception e) { System.out.println(e.getMessage()); } return content; } public static void main(String []args) { FileInput fi = new FileInput(); fi.readFile(); } } 。根据while循环条件,它甚至不应该读取{{1}}。

{{1}}

input.txt

  

Dangal / Aamir Khan / Fatima Sana
  Sanju / Ranbir Kapoor / Dia Mirza
  PK / Aamir Khan / Anushka Sharma
  Munna Bhai MBBS / Sanjay Dutt / Arshad Warsi
  Zindagi Na Milegi Dobara / Farhan Akhtar / Katrina Kaif

输出:

  

Sanju / Ranbir Kapoor / Dia Mirza
  Munna Bhai MBBS / Sanjay Dutt / Arshad Warsi
  空

我做错了什么还是在某个地方犯了小错误?

1 个答案:

答案 0 :(得分:8)

您两次致电br.readLine(),这导致您在读取while-loop中的文件时跳过了几行。

将您的时间更改为以下内容:-

while ((line = br.readLine()) != null) {
   content.add(line);
   System.out.println(line);
}