如何用 Java 逐行读取文件

介绍

在本文中,您将了解如何使用Java来读取文件的内容,并使用以下Java类的方法:java.io.BufferedReader、java.util.Scanner、Files.readAllLines()和java.io.RandomAccessFile。

使用BufferedReader线性阅读文件

您可以使用从java.io.BufferedReader的readLine()方法读取一行一行的文件到 String. 此方法在到达文件的尽头时返回null

以下是用「BufferedReader」读取一行一行文件的示例程序:

 1[label ReadFileLineByLineUsingBufferedReader.java]
 2package com.journaldev.readfileslinebyline;
 3
 4import java.io.BufferedReader;
 5import java.io.FileReader;
 6import java.io.IOException;
 7
 8public class ReadFileLineByLineUsingBufferedReader {
 9
10    public static void main(String[] args) {
11    	BufferedReader reader;
12
13    	try {
14    		reader = new BufferedReader(new FileReader("sample.txt"));
15    		String line = reader.readLine();
16
17    		while (line != null) {
18    			System.out.println(line);
19    			// read next line
20    			line = reader.readLine();
21    		}
22
23    		reader.close();
24    	} catch (IOException e) {
25    		e.printStackTrace();
26    	}
27    }
28
29}

继续学习使用 BufferedReader API Doc (Java SE 8)。

使用扫描器线性阅读文件

您可以使用 Scanner类来打开文件,然后读取其内容一行一行。

以下是一個例子程式,用「掃描器」來閱讀檔案一行一行:

 1[label ReadFileLineByLineUsingScanner.java]
 2package com.journaldev.readfileslinebyline;
 3
 4import java.io.File;
 5import java.io.FileNotFoundException;
 6import java.util.Scanner;
 7
 8public class ReadFileLineByLineUsingScanner {
 9
10    public static void main(String[] args) {
11    	try {
12    		Scanner scanner = new Scanner(new File("sample.txt"));
13
14    		while (scanner.hasNextLine()) {
15    			System.out.println(scanner.nextLine());
16    		}
17
18    		scanner.close();
19    	} catch (FileNotFoundException e) {
20    		e.printStackTrace();
21    	}
22    }
23
24}

继续学习使用 Scanner API Doc(Java SE 8)。

使用文件读取一行一行文件

java.nio.file.Files是一个包含各种有用的方法的实用类。

以下是一個例子程式,可以用「檔案」閱讀一行一行的檔案:

 1[label ReadFileLineByLineUsingFiles.java]
 2package com.journaldev.readfileslinebyline;
 3
 4import java.io.IOException;
 5import java.nio.file.Files;
 6import java.nio.file.Paths;
 7import java.util.List;
 8
 9public class ReadFileLineByLineUsingFiles {
10
11    public static void main(String[] args) {
12    	try {
13    		List<String> allLines = Files.readAllLines(Paths.get("sample.txt"));
14
15    		for (String line : allLines) {
16    			System.out.println(line);
17    		}
18    	} catch (IOException e) {
19    		e.printStackTrace();
20    	}
21    }
22
23}

继续学习用 Files API Doc(Java SE 8)。

使用RandomAccessFile读取一行一行的文件

您可以使用RandomAccessFileread mode 中打开文件,然后使用其readLine 方法读取一行一行的文件。

以下是用RandomAccessFile读取一行一行文件的示例程序:

 1[label ReadFileLineByLineUsingRandomAccessFile.java]
 2package com.journaldev.readfileslinebyline;
 3
 4import java.io.IOException;
 5import java.io.RandomAccessFile;
 6
 7public class ReadFileLineByLineUsingRandomAccessFile {
 8
 9    public static void main(String[] args) {
10    	try {
11    		RandomAccessFile file = new RandomAccessFile("sample.txt", "r");
12    		String str;
13
14    		while ((str = file.readLine()) != null) {
15    			System.out.println(str);
16    		}
17
18    		file.close();
19    	} catch (IOException e) {
20    		e.printStackTrace();
21    	}
22    }
23
24}

继续学习使用 RandomAccessFile API Doc(Java SE 8)。

结论

在本文中,您了解了使用Java来读取文件内容的不同方式。

继续学习更多的Java教程(https://andsky.com/tags/java)。

Published At
Categories with 技术
Tagged with
comments powered by Disqus