当前位置:首页 > 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
分享给朋友:

相关文章

vue实现文件的上传

vue实现文件的上传

文件上传的基本实现 在Vue中实现文件上传通常结合HTML的<input type="file">元素和FormData对象。通过监听文件选择事件获取文件对象,再通过AJAX或axios发…

vue实现静态文件下载

vue实现静态文件下载

实现静态文件下载的方法 在Vue项目中实现静态文件下载可以通过多种方式完成,以下是几种常见的方法: 使用<a>标签下载 将静态文件放置在项目的public目录下,通过<a>…

java如何输出数组

java如何输出数组

输出数组的方法 在Java中,输出数组内容有多种方式,具体取决于数组类型和输出格式需求。以下是几种常见的方法: 使用Arrays.toString()方法 适用于一维数组,直接调用Arrays.to…

php实现文件下载代码

php实现文件下载代码

实现文件下载的基本方法 使用PHP实现文件下载的核心是通过设置HTTP头部信息,强制浏览器触发下载行为而非直接显示文件内容。 $file_path = 'path/to/your/file.ext'…

java如何导入jar包

java如何导入jar包

在Eclipse中导入JAR包 右键项目 -> 选择"Properties" -> 左侧导航选择"Java Build Path" -> 切换到"Libraries"标签 ->…

java如何调试

java如何调试

调试Java程序的基本方法 使用IDE内置的调试工具(如IntelliJ IDEA或Eclipse)是最常见的方式。在代码行号旁点击设置断点,启动调试模式后,程序会在断点处暂停,允许查看变量值、调用栈…