Java读取文件内容为String的几种方法
在Java中,有几种常见的方法可以将文件内容读取为String,以下是几种主要的方法:

使用Files.readString (Java 11+)
这是最简单的方法,适用于Java 11及以上版本:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
public class ReadFileToString {
public static void main(String[] args) {
try {
String content = Files.readString(Paths.get("path/to/your/file.txt"));
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用Files.readAllLines (Java 8+)
适用于Java 8及以上版本:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.List;
public class ReadFileToString {
public static void main(String[] args) {
try {
List<String> lines = Files.readAllLines(Paths.get("path/to/your/file.txt"));
String content = String.join("\n", lines);
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
使用BufferedReader (传统方法)
适用于所有Java版本:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class ReadFileToString {
public static void main(String[] args) {
StringBuilder content = new StringBuilder();
try (BufferedReader reader = new BufferedReader(new FileReader("path/to/your/file.txt"))) {
String line;
while ((line = reader.readLine()) != null) {
content.append(line).append("\n");
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(content.toString());
}
}
使用Scanner (Java 5+)
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadFileToString {
public static void main(String[] args) {
try {
Scanner scanner = new Scanner(new File("path/to/your/file.txt"));
StringBuilder content = new StringBuilder();
while (scanner.hasNextLine()) {
content.append(scanner.nextLine()).append("\n");
}
scanner.close();
System.out.println(content.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
使用Apache Commons IO (第三方库)
如果你使用Maven或Gradle,可以添加Apache Commons IO依赖:

<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.11.0</version>
</dependency>
然后使用:
import org.apache.commons.io.FileUtils;
import java.io.File;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
public class ReadFileToString {
public static void main(String[] args) {
try {
String content = FileUtils.readFileToString(new File("path/to/your/file.txt"), StandardCharsets.UTF_8);
System.out.println(content);
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意事项
- 文件路径:确保文件路径正确,可以是绝对路径或相对路径
- 字符编码:对于非ASCII字符,指定正确的字符编码(如UTF-8)
- 异常处理:文件操作可能抛出IOException,需要适当处理
- 大文件:对于大文件,建议使用BufferedReader逐行读取而不是一次性读取整个文件
选择哪种方法取决于你的Java版本、项目需求和性能考虑,Java 11+的Files.readString()是最简洁的选择。

