java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java文件复制

Java文件复制:字符缓冲流和字节缓冲流的实现

作者:2401_88461221

本文主要介绍了Java文件复制的实现,包括字符缓冲流 和 字节缓冲流,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

做作业时经常要复制文件,Java提供了两种好用的方式:

缓冲流就像一个大水桶,一次多装点水,比一滴一滴倒快得多。

1. 文本文件复制(字符缓冲流)

适用于 .txt、.java 等纯文本文件。

思路:

把上面两段代码拷贝到你的IDE里,改一下文件名,就能直接运行啦。作业搞定!😊

  1. 用 BufferedReader 读取源文件(按行读)
  2. 用 BufferedWriter 写入目标文件

记得关闭资源

import java.io.*;

public class TextCopy {
    public static void main(String[] args) {
        try (
            BufferedReader br = new BufferedReader(new FileReader("source.txt"));
            BufferedWriter bw = new BufferedWriter(new FileWriter("target.txt"));
        ) {
            String line;
            while ((line = br.readLine()) != null) {
                bw.write(line);
                bw.newLine();   // 换行
            }
            System.out.println("文本复制成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

2. 任意文件复制(字节缓冲流)

不管是图片、音乐、压缩包,统统可以用字节流复制,它是万能的。

思路

import java.io.*;
public class AnyCopy {
    public static void main(String[] args) {
        try (
            BufferedInputStream bis = new BufferedInputStream(new FileInputStream("photo.jpg"));
            BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("photo_copy.jpg"));
        ) {
            byte[] buffer = new byte[8192];   // 8KB的小桶
            int len;
            while ((len = bis.read(buffer)) != -1) {
                bos.write(buffer, 0, len);
            }
            System.out.println("任意文件复制成功!");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

总结对比

类型用什么流适合文件
文本复制BufferedReader + BufferedWriter文本文件(.txt, .java等)
任意文件复制BufferedInputStream + BufferedOutputStream所有文件(图片、视频、exe等)

记住:

到此这篇关于Java文件复制:字符缓冲流 和 字节缓冲流的实现的文章就介绍到这了,更多相关Java文件复制内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文