当前位置:首页 > 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() 方法导致资源泄漏。

java如何读写文件

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

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

相关文章

旋转相册制作css文件

旋转相册制作css文件

旋转相册制作CSS文件 旋转相册通常通过CSS动画和3D变换实现,以下是一个完整的CSS文件示例,用于创建一个3D旋转相册效果。 基础HTML结构 在CSS文件之前,需确保HTML结构包含相…

java如何使用

java如何使用

Java 基本使用方法 Java 是一种广泛使用的编程语言,适用于开发各种类型的应用程序。以下是 Java 的基本使用方法,包括环境配置、语法基础和常用操作。 安装 Java 开发环境 下载并安装…

java如何react

java如何react

在Java中使用React 要在Java项目中集成React,通常需要将React前端与Java后端结合使用。以下是几种常见的方法: 使用Spring Boot作为后端 Spring Boot是一个…

java如何创建对象

java如何创建对象

创建对象的基本方法 在Java中,创建对象主要通过new关键字调用构造函数完成。基本语法为: ClassName objectName = new ClassName(); 例如创建String对象…

java如何输入字符串

java如何输入字符串

使用 Scanner 类 在 Java 中,可以通过 java.util.Scanner 类来输入字符串。以下是一个示例代码: import java.util.Scanner; public c…

java如何获取当前时间

java如何获取当前时间

获取当前时间的方法 在Java中,可以通过多种方式获取当前时间。以下是几种常见的方法: 使用 java.util.Date Date currentDate = new Date(); Syste…