BufferedCopy

该代码示例展示了如何使用Java的BufferedReader和BufferedWriter类复制文本文件,以及使用BufferedInputStream和BufferedOutputStream类复制二进制文件。程序通过读取源文件并写入目标文件实现文件的拷贝,处理过程中确保了数据的正确传输。
摘要由CSDN通过智能技术生成

 字符的复制

package file.Buffered;

import java.io.*;
//BufferedReader和BufferedWriter 是安装字符操作
//不要去操作二进制文件,可能造成文件损坏
/*
* 二进制文件是以字节为单位进行读写的文件,它包含了任意类型的数据,包括图片、音频、视频
* 等非文本数据。在处理二进制文件时,可以使用字节流(InputStream和OutputStream)来读写数据。(声音视频,word,excel,ppt文件等)
*
*文本文件是以字符为单位进行读写的文件,它包含了文本数据,通常使用ASCII或Unicode编码表示字符。
* 在处理文本文件时,可以使用字符流(Reader和Writer)来读写数据。
*/
public class BufferedCopy {
    public static void main(String[] args) {
        String sourcePath = "d:\\news.txt";
        String destPath ="d:\\destnews.txt";
        BufferedReader br =null;
        BufferedWriter bw = null;
        String line;//按行读取
        try {
            br = new BufferedReader(new FileReader(sourcePath));
            bw = new BufferedWriter(new FileWriter(destPath));
            while((line = br.readLine()) != null){//判断是否为空,如不为空则继续读入
                bw.write(line);//每读取一行就插入一行
                bw.newLine();//插入换行符
            }
            System.out.println("拷贝完成");
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            //关闭流
            try {
                if(br != null){
                    br.close();
                }
                if(bw != null){
                    bw.close();
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

字节的复制

package file.Buffered;

import java.io.*;

public class BufferedCopy02 {
    public static void main(String[] args) {
        String spath = "d:\\PP.jpg";
        String dpath = "d:\\dPP.jpg";
        BufferedInputStream bi = null;
        BufferedOutputStream bo = null;

        try {
            bi = new BufferedInputStream(new FileInputStream(spath));
            bo = new BufferedOutputStream(new FileOutputStream(dpath));
            byte[] buff = new byte[1024];
            int readln = 0;
            while((readln = bi.read(buff))!= -1){//返回-1,文件读取完毕
                bo.write(buff,0,readln);
            }
            System.out.println("文件拷贝成功");
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            try {
                if(bi != null){
                    bi.close();
                }
                if(bo !=  null){
                    bo.close();
                }
            } catch (IOException e) {
                throw new RuntimeException(e);
            }
        }
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值