如何从文本文件中获取特定行?

How can I get a specific line from a text file?

我不知道如何从文件中获取特定的文本行。假设文本文件是:

(1) john
(2) mark
(3) Luke

如何获取文本文件的第二行(标记)?我只需要阅读它,而不是编辑它。

int n = 2;
String lineN = Files.lines(Paths.get("yourFile.txt"))
                    .skip(n)
                    .findFirst()
                    .get();

对于前Java 8,你可以做例如

int n = 2;
Scanner s = new Scanner(new File("test.txt"));
for (int i = 0; i < n-1; i++) // Discard n-1 lines
    s.nextLine();
String lineN = s.nextLine();

您可以使用 Apache FileUtils class

File file = new File("file_name.txt");
String encoding = null; // default to platform
List<String> lines = FileUtils.readLines(file, encoding);
String line2 = lines.get(1);

如果不先阅读前面的行,就无法阅读特定的行。您可以循环 x 次,直到到达您想要的行。

例如:

FileReader fr = new FileReader("myfile.txt");
BufferedReader br = new BufferedReader(fr);
int lineNum = 2; //line of file to read
for(int i = 1; i < lineNum; i++)
     br.readLine();
System.out.println(br.readLine());