我正在尝试在文本文件中显示多行的内容。我可以用一行来做到没有问题,但是我添加了另一行,我不确定我需要添加到我的代码中以使其进入下一行。我需要myValues [1]与myValues [n]相同才能成为文件中的第二行。我相信我需要将新的String作为下一行,但我不确定如何使用此设置。
package a3;
import java.io.*;
public class A3
{
public static void main(String [] args)
{
String animals = "animals.txt";
String line = null;
try
{
FileReader fileReader = new FileReader(animals);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String aLine = bufferedReader.readLine();
String myValues[] = aLine.split(" ");
int n = 0;
while((line = bufferedReader.readLine()) != null)
{
System.out.println(myValues[n] + " " + myValues[1]);
n++;
}
bufferedReader.close();
}
catch(FileNotFoundException ex)
{
System.out.println("Unable to open file '" + animals + "'");
}
catch(IOException ex)
{
System.out.println("Error reading file '" + animals + "'");
}
}
}
答案 0 :(得分:0)
在您的代码中,数组myValues
永远不会更改,并且始终包含第一行文本的值。每次获得新行时都需要更改它,这在while
循环中完成:
[...]
while((line = bufferedReader.readLine()) != null)
{
myValues[] = line.split(" ");
System.out.println(myValues[n] + " " + myValues[1]);
n++;
}
显然没有经过测试......
答案 1 :(得分:0)
您还可以读取字符串列表中的所有行,如下所示:
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.util.List;
List<String> lines = Files.readAllLines(new File(animals).toPath(), Charset.defaultCharset());
然后迭代线列表,拆分值并输出它们。
答案 2 :(得分:0)
这是另一种从文件中读取行并进行处理的简单方法:
有一个java.io.LineNumberReader
类有助于实现它。
示例代码段:
LineNumberReader lnr = new LineNumberReader(new FileReader(new File(filename)));
String line = null;
while ((line = lnr.readLine()) != null)
{
// Do you processing on line
}