在 Java 中,使用 String 读取文件通常有两种常见场景:
StringString下面按 Java 版本给你几种常用方式。
Stringimport java.nio.file.Files;
import java.nio.file.Path;
public class Main {
public static void main(String[] args) throws Exception {
String content = Files.readString(Path.of("test.txt"));
System.out.println(content);
}
}
Files.readAllBytesimport java.nio.file.Files;
import java.nio.file.Paths;
public class Main {
public static void main(String[] args) throws Exception {
String content = new String(
Files.readAllBytes(Paths.get("test.txt"))
);
System.out.println(content);
}
}
Stringimport java.nio.file.Files;
import java.nio.file.Paths;
import java.util.stream.Collectors;
public class Main {
public static void main(String[] args) throws Exception {
String content = Files.lines(Paths.get("test.txt"))
.collect(Collectors.joining("\n"));
System.out.println(content);
}
}
BufferedReaderimport java.io.BufferedReader;
import java.io.FileReader;
public class Main {
public static void main(String[] args) throws Exception {
StringBuilder sb = new StringBuilder();
try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
String line;
while ((line = br.readLine()) != null) {
sb.append(line).append("\n");
}
}
String content = sb.toString();
System.out.println(content);
}
}
如果文件不是 UTF-8,一定要指定编码:
String content = Files.readString(
Path.of("test.txt"),
java.nio.charset.StandardCharsets.UTF_8
);
| 场景 | 推荐方式 |
|---|---|
| Java 11+ | Files.readString() |
| Java 8 | Files.readAllBytes() |
| 大文件 | BufferedReader |
| 按行处理 | Files.lines() |
如果你有 大文件 / 编码问题 / 读取中文乱码,可以告诉我具体场景。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。