温馨提示×

温馨提示×

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

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

java File文件怎么读取

发布时间:2026-10-07 01:44:19 来源:亿速云 阅读:94 作者:小樊 栏目:编程语言

在 Java 中,读取 File 文件有多种方式,下面按常见场景给你总结几种最实用的方法(基于 Java 8+)。


一、最推荐方式(Java 8+):Files.readAllLines

适合:小文件、按行读取

import java.nio.file.*;
import java.util.List;

public class ReadFileDemo {
    public static void main(String[] args) throws Exception {
        Path path = Paths.get("test.txt");
        List<String> lines = Files.readAllLines(path);

        for (String line : lines) {
            System.out.println(line);
        }
    }
}

✅ 简单、安全
❌ 不适合超大文件


二、一次性读取为字符串(Java 11+)

适合:读取配置文件、JSON、HTML

String content = Files.readString(Paths.get("test.txt"));
System.out.println(content);

三、使用 BufferedReader(推荐大文件)

适合:逐行读取、内存友好

import java.io.*;

public class BufferedReaderDemo {
    public static void main(String[] args) throws IOException {
        try (BufferedReader br = new BufferedReader(new FileReader("test.txt"))) {
            String line;
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
        }
    }
}

✅ 性能好
✅ 自动关闭资源


四、使用 FileInputStream(字节读取)

适合:图片、视频、二进制文件

import java.io.*;

public class InputStreamDemo {
    public static void main(String[] args) throws IOException {
        try (FileInputStream fis = new FileInputStream("test.txt")) {
            int data;
            while ((data = fis.read()) != -1) {
                System.out.print((char) data);
            }
        }
    }
}

五、使用 Scanner

适合:简单读取、解析格式

import java.io.*;
import java.util.Scanner;

public class ScannerDemo {
    public static void main(String[] args) throws FileNotFoundException {
        Scanner sc = new Scanner(new File("test.txt"));
        while (sc.hasNextLine()) {
            System.out.println(sc.nextLine());
        }
        sc.close();
    }
}

六、读取大文件(流式,内存最低)

Files.lines(Paths.get("big.txt"))
     .forEach(System.out::println);

七、常见问题

1️⃣ 中文乱码

Files.readAllLines(path, StandardCharsets.UTF_8);
new InputStreamReader(fis, "UTF-8");

2️⃣ 文件路径

  • 相对路径:src/test.txt
  • 绝对路径:C:/data/test.txt

总结建议

场景 推荐方式
小文本 Files.readAllLines
大文本 BufferedReader
二进制 FileInputStream
新项目 java.nio.file

如果你是 Android / Spring / 读取特定格式(JSON、CSV),可以告诉我,我给你更针对性的示例。

向AI问一下细节

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

AI
助
手