文件输入只读取输入文件的最后几行
File Input reads only last few lines from the input file
这是一个简单的代码,可以从.txt 文件中读取所有内容。不确定是什么问题。我尝试使用不同的测试文件,它只读取第 2 行和第 4 行,然后是 null
。根据 while 循环条件,它甚至不应该读取 null
。
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();
}
}
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
null
我是不是做错了什么,还是哪里出了点小错误?
您调用了 br.readLine()
两次,这导致您在读取 while-loop
.
中的文件时跳过了几行
将您的 while 更改为如下:-
while ((line = br.readLine()) != null) {
content.add(line);
System.out.println(line);
}
这是一个简单的代码,可以从.txt 文件中读取所有内容。不确定是什么问题。我尝试使用不同的测试文件,它只读取第 2 行和第 4 行,然后是 null
。根据 while 循环条件,它甚至不应该读取 null
。
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();
}
}
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
null
我是不是做错了什么,还是哪里出了点小错误?
您调用了 br.readLine()
两次,这导致您在读取 while-loop
.
将您的 while 更改为如下:-
while ((line = br.readLine()) != null) {
content.add(line);
System.out.println(line);
}