BufferedReader 只读取文本文件的第一行
BufferedRead only reading the first line of textfile
我正在尝试使用 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() 给你一行,它移动到下一行开始光标直到文件末尾(在行尾因为它不能再读更多的行,它 returns 空)。
你可以像这样读取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(); ----> One line read.
}
catch (IOException e)
{
System.out.println(e);
}
应该是-
while ((dataInTextFile = fileInput.readLine()) != null) {
System.out.println(dataInTextFile );
}
我正在尝试使用 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() 给你一行,它移动到下一行开始光标直到文件末尾(在行尾因为它不能再读更多的行,它 returns 空)。
你可以像这样读取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(); ----> One line read.
}
catch (IOException e)
{
System.out.println(e);
}
应该是-
while ((dataInTextFile = fileInput.readLine()) != null) {
System.out.println(dataInTextFile );
}