当前位置:首页 > Java

java如何读写文件

2026-02-05 00:52:25Java

读取文件

使用 BufferedReader 读取文本文件是一种高效的方式,可以逐行读取内容。需要先创建 FileReader 对象,再将其传递给 BufferedReader

try (BufferedReader br = new BufferedReader(new FileReader("file.txt"))) {
    String line;
    while ((line = br.readLine()) != null) {
        System.out.println(line);
    }
} catch (IOException e) {
    e.printStackTrace();
}

对于二进制文件,可以使用 FileInputStream 配合 BufferedInputStream 提高读取效率。通过字节数组缓存数据,适用于非文本文件。

try (FileInputStream fis = new FileInputStream("file.bin");
     BufferedInputStream bis = new BufferedInputStream(fis)) {
    byte[] buffer = new byte[1024];
    int bytesRead;
    while ((bytesRead = bis.read(buffer)) != -1) {
        // 处理读取到的字节数据
    }
} catch (IOException e) {
    e.printStackTrace();
}

写入文件

使用 BufferedWriter 写入文本文件时,可以调用 write() 方法写入字符串,newLine() 方法添加换行符。需要显式调用 flush() 或关闭流确保数据写入磁盘。

try (BufferedWriter bw = new BufferedWriter(new FileWriter("output.txt"))) {
    bw.write("Hello, World!");
    bw.newLine();
    bw.write("Another line");
} catch (IOException e) {
    e.printStackTrace();
}

对于二进制文件写入,FileOutputStream 配合 BufferedOutputStream 是常见选择。通过字节数组批量写入数据,适合处理图片、音频等二进制内容。

try (FileOutputStream fos = new FileOutputStream("output.bin");
     BufferedOutputStream bos = new BufferedOutputStream(fos)) {
    byte[] data = {0x48, 0x65, 0x6C, 0x6C, 0x6F}; // Hello的ASCII码
    bos.write(data);
} catch (IOException e) {
    e.printStackTrace();
}

NIO文件操作

Java NIO提供了更现代的API,Files 类包含便捷方法。读取所有行到列表只需一行代码,适合小文件处理。

try {
    List<String> lines = Files.readAllLines(Paths.get("file.txt"), StandardCharsets.UTF_8);
    lines.forEach(System.out::println);
} catch (IOException e) {
    e.printStackTrace();
}

NIO写入文件同样简洁,可以指定打开选项。StandardOpenOption.CREATE 会在文件不存在时创建,APPEND 实现追加写入。

try {
    Files.write(Paths.get("output.txt"), 
               "New content".getBytes(), 
               StandardOpenOption.CREATE, 
               StandardOpenOption.APPEND);
} catch (IOException e) {
    e.printStackTrace();
}

异常处理

无论使用哪种方式,都必须妥善处理 IOException。try-with-resources 语法能自动关闭资源,避免忘记调用 close() 方法导致资源泄漏。

对于文件路径处理,推荐使用 Paths.get() 替代硬编码路径,增强跨平台兼容性。字符编码建议显式指定为 StandardCharsets.UTF_8,避免平台默认编码差异问题。

java如何读写文件

标签: 文件java
分享给朋友:

相关文章

vue实现录音文件播放

vue实现录音文件播放

实现录音文件播放的方法 在Vue中实现录音文件播放需要结合HTML5的Web Audio API或第三方库。以下是两种常见的方法: 使用HTML5 Audio元素 通过Vue动态绑定<a…

如何使用java

如何使用java

安装Java开发环境 下载并安装Java Development Kit(JDK),推荐从Oracle官网或OpenJDK获取最新版本。安装完成后配置环境变量,确保JAVA_HOME指向JDK安装路径…

java如何编译

java如何编译

编译Java程序的基本步骤 安装JDK(Java Development Kit)并配置环境变量。确保javac和java命令可在命令行中运行。JDK是编译和运行Java程序的必备工具。 创建Ja…

java如何读取文件

java如何读取文件

读取文件的常用方法 Java提供了多种读取文件的方式,适用于不同场景和需求。以下是几种常见的方法: 使用FileInputStream和BufferedInputStream读取二进制文件…

如何学习java

如何学习java

学习Java的步骤 理解基础知识 从Java的基本语法开始,包括变量、数据类型、运算符、控制流(if-else、循环)等。掌握这些基础概念是后续学习的基石。 学习面向对象编程(OOP) Java是…

java如何学习

java如何学习

学习Java的有效方法 理解基础概念 Java是一门面向对象的编程语言,掌握基础概念如变量、数据类型、运算符、控制语句(if-else、循环)是必要的。面向对象的核心概念包括类、对象、继承、多态和封装…