介绍
在本文中,您将了解如何使用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
读取一行一行的文件
您可以使用RandomAccessFile
在 read 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)。