温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

java String 怎么读取文件

发布时间:2026-10-26 12:14:02 来源:亿速云 阅读:91 作者:小樊 栏目:编程语言

在 Java 中,使用 String 读取文件通常有两种常见场景:

  1. 一次性把整个文件读成 String
  2. 逐行读取文件并拼接成 String

下面按 Java 版本给你几种常用方式。


一、Java 11+(最简单,推荐)

1. 整个文件读成 String

import 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);
    }
}

二、Java 8(常用)

2. 使用 Files.readAllBytes

import 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);
    }
}

3. 逐行读取并拼接成 String

import 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);
    }
}

三、传统 IO 方式(兼容老项目)

4. 使用 BufferedReader

import 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()

如果你有 大文件 / 编码问题 / 读取中文乱码,可以告诉我具体场景。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手