我正在尝试使用BufferedReader读取Java中文本文件的内容。但是,仅第一行被检索。
这里是代码:
public String myFile(String file)
{
String dataInTextFile = "";
try
{
BufferedReader fileInput = new BufferedReader(new FileReader(file));
try
{
dataInTextFile = fileInput.readLine();
}
catch (IOException e)
{
System.out.println(e);
}
}
catch (FileNotFoundException e)
{
System.out.println(e);
}
return dataInTextFile;
}
这是因为您的代码设计为仅读取一行。您需要连续确定readLine()是否产生结果,否则,请停止读取文件。
private String read(String file) throws IOException {
String dataInTextFile = "";
try (BufferedReader fileInput = new BufferedReader(new FileReader(file))) {
String line;
while ((line = fileInput.readLine()) != null) {
// process line
}
}
return dataInTextFile;
}
实际上bufferReader.readLine()给您一行,除非它为null,否则它将移动到下一行从光标开始的位置,所以
您可以像这样通过bufferReader进行阅读
public String readFile(String filePath) {
StringBuilder contentString = new StringBuilder();
try {
BufferedReader bufferReader = new BufferedReader(new FileReader(filePath));
String line = bufferReader.readLine();
while(line != null){
contentStringString.append(line);
line = bufferReader.readLine();
}
}
catch(Exception e) {
e.printStackTrace();
}
return contentString.toString();
}
您仅阅读第一行。
try
{
dataInTextFile = fileInput.readLine(); ----> here
}
catch (IOException e)
{
System.out.println(e);
}
应该是-
while ((dataInTextFile = fileInput.readLine()) != null) {
System.out.println(dataInTextFile );
}