You need to enable JavaScript to run this app. Java开发中能否不使用导入语句直接打开读取file.txt文件?
优惠活动
大模型
产品
解决方案
定价
更多

Java开发中能否不使用导入语句直接打开读取file.txt文件?

Java无第三方依赖的文件读取实现方案

所有下列实现用到的类均来自JDK标准库(java.io、java.nio.file包),不需要导入任何第三方库。你之前使用的BufferedReader本身也属于JDK原生IO类,并非第三方组件,如果你需要除BufferedReader之外的原生读取方案,可以参考以下几种:

1. FileInputStream 按字节读取

最底层的原生IO实现,直接读取文件原始字节流,适合需要逐字节处理随机字符的场景:

import java.io.FileInputStream;
import java.io.IOException;

public class ReadFileDemo {
    public static void main(String[] args) {
        // try-with-resources自动关闭流,无需手动释放
        try (FileInputStream fis = new FileInputStream("file.txt")) {
            int content;
            // 读到文件末尾时返回-1
            while ((content = fis.read()) != -1) {
                // 在此处按需处理每个字节/字符
                System.out.print((char) content);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. FileReader 按字符读取

属于java.io包下的原生字符流实现,自动按默认字符集(可手动指定编码)转换字节为字符,无需手动做字节-字符转换,适合文本类文件读取:

import java.io.FileReader;
import java.io.IOException;

public class ReadFileDemo {
    public static void main(String[] args) {
        try (FileReader fr = new FileReader("file.txt")) {
            int content;
            while ((content = fr.read()) != -1) {
                // 在此处按需处理每个字符
                System.out.print((char) content);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

3. Files 工具类(JDK7+ 原生NIO实现)

java.nio.file.Files是JDK自带的IO工具类,不需要任何第三方依赖,可大幅简化读取逻辑,非常适合练习场景,常用用法有两种:

  • 一次性读取全文件为字符串(适合需要整体做字符串处理的场景):
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.io.IOException;

public class ReadFileDemo {
    public static void main(String[] args) {
        try {
            // 指定UTF-8编码读取,避免含随机字符的文件出现乱码
            String content = new String(Files.readAllBytes(Paths.get("file.txt")), StandardCharsets.UTF_8);
            // 后续可直接对content执行各类字符串处理操作
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
  • 按行读取文件为字符串列表(适合需要逐行处理的场景):
import java.nio.file.Files;
import java.nio.file.Paths;
import java.nio.charset.StandardCharsets;
import java.util.List;
import java.io.IOException;

public class ReadFileDemo {
    public static void main(String[] args) {
        try {
            List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);
            // 在此处遍历lines做逐行字符串处理
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

补充说明:如果处理的file.txt体积较大,推荐使用带缓存的IO实现(比如你之前用的BufferedReader,或者包装BufferedInputStream/BufferedReader的Files工具类),可以减少磁盘IO次数,提升读取效率,这些缓存类也同样属于JDK原生类,无第三方依赖。

内容的提问来源于stack exchange,提问作者Рик Plays

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.31 06:36:10