如何在Java中实现文件读写程序

Java中文件读写主要使用java.io包,根据需求选择字符流或字节流;处理文本文件可用FileReader/FileWriter逐字符操作,或BufferedReader/BufferedWriter按行高效读写;二进制文件则用FileInputStream/FileOutputStream配合缓冲数组复制;Java NIO.2的Files类提供简洁API适合小文件操作;所有方式均需处理IO异常并确保资源关闭。

如何在java中实现文件读写程序

在Java中实现文件读写程序,主要依赖于java.io包中的类。根据需求不同,可以选择字节流或字符流进行操作。下面介绍几种常用方式,并给出简单示例。

使用FileReader和FileWriter读写文本文件

适用于处理字符数据(如文本文件),操作简单直观。

说明: FileReader用于读取字符文件,FileWriter用于写入字符文件。

示例代码:

立即学习“Java免费学习笔记(深入)”;

import java.io.*;public class FileReadWrite {    public static void main(String[] args) {        String inputFile = "input.txt";        String outputFile = "output.txt";        try (FileReader fr = new FileReader(inputFile);             FileWriter fw = new FileWriter(outputFile)) {            int ch;            while ((ch = fr.read()) != -1) {                fw.write(ch);            }            System.out.println("文件复制完成!");        } catch (IOException e) {            System.out.println("发生IO异常:" + e.getMessage());        }    }}

这段代码将input.txt的内容逐个字符读取并写入output.txt。使用try-with-resources确保资源自动关闭。

使用BufferedReader和BufferedWriter提升效率

带缓冲的流能显著提高读写性能,尤其适合大文件处理。

建议: 按行读取和写入时优先使用这两个类。

import java.io.*;public class BufferedFileRW {    public static void main(String[] args) {        String input = "data.txt";        String output = "copy_data.txt";        try (BufferedReader br = new BufferedReader(new FileReader(input));             BufferedWriter bw = new BufferedWriter(new FileWriter(output))) {            String line;            while ((line = br.readLine()) != null) {                bw.write(line);                bw.newLine(); // 写入换行符            }            System.out.println("文件按行复制完成!");        } catch (IOException e) {            System.out.println("读写出错:" + e.getMessage());        }    }}

这种方式更适合处理结构化文本,比如配置文件或日志文件。

使用FileInputStream和FileOutputStream处理二进制文件

当需要读写图片、音频、视频等非文本文件时,应使用字节流。

注意: 字节流不会做字符编码转换,适合原始数据操作。

import java.io.*;public class BinaryFileCopy {    public static void main(String[] args) {        String src = "photo.jpg";        String dest = "photo_copy.jpg";        try (FileInputStream fis = new FileInputStream(src);             FileOutputStream fos = new FileOutputStream(dest)) {            byte[] buffer = new byte[1024];            int bytesRead;            while ((bytesRead = fis.read(buffer)) != -1) {                fos.write(buffer, 0, bytesRead);            }            System.out.println("二进制文件复制成功!");        } catch (IOException e) {            System.out.println("文件复制失败:" + e.getMessage());        }    }}

使用缓冲数组可大幅提升读写速度,推荐固定大小如1KB或4KB。

使用Files工具类(Java 7+)简化操作

Java NIO.2提供了更现代的API,代码更简洁。

常用方法: Files.readAllLines(), Files.write(), Files.copy()

import java.nio.file.*;import java.util.List;public class SimpleFileRW {    public static void main(String[] args) {        Path input = Paths.get("notes.txt");        Path output = Paths.get("backup.txt");        try {            List lines = Files.readAllLines(input);            Files.write(output, lines);            System.out.println("文件写入完成!");        } catch (IOException e) {            System.out.println("操作失败:" + e.getMessage());        }    }}

这种方式适合小文件快速读写,但大文件可能引发内存问题。

基本上就这些。选择哪种方式取决于你的具体需求:文本还是二进制、文件大小、是否需要逐行处理等。关键是记得处理异常并及时关闭资源。不复杂但容易忽略。

以上就是如何在Java中实现文件读写程序的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/65611.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
win10开机关机音乐图文设置方法
上一篇 2025年11月12日 01:51:07
苹果手机如何从AppStore安装应用(详细步骤)
下一篇 2025年11月12日 01:53:09

相关推荐

发表回复

登录后才能评论
关注微信