328学习日记(字节流和字符流)

字节输出流不会进过内存缓冲区进行数据的暂存,而是直接与目标介质进行输出控制,所有的字符流都需要经过内存处理后才可以实现(可以通过flush()方法强制刷新内存缓存区,实现输出)。实际上大部分的 IO操作都可以通过字节流的方式来完成,但是如果要是在中文的处理上,首选的一定是字符流

五大类完整继承逻辑:

 

文件拷贝代码:

package hxw.io;

import java.io.*;

/**
 * @Description:
 * @Author: huangxunwei
 * @Date: 2022/3/28 13:05
 */
/*
文件拷贝
 */

interface ICopy{
    public long Copy() throws IOException;
}
class CopyUtil implements ICopy{
    private File inFile;//输入文件路径
    private File outFile;//输出文件路径
    public CopyUtil(String args[]){
        if(args.length!=2){
            System.out.println("拷贝程序命令输入不足,无法拷贝");
            System.exit(1);//程序异常 退出程序
        }
        this.inFile=new File(args[0]);//初始化inFile
        this.outFile=new File(args[1]);//初始化outFile
    }
    public CopyUtil(String inPath,String outPath){//双参构造
        this.inFile=new File(inPath);
        this.outFile=new File(outPath);
    }
    public long Copy() throws IOException {//copy方法实现
        long start=System.currentTimeMillis();
        InputStream input=null;//字节输入流 保存的也是路径inFile
        OutputStream output=null;//字节输出流 保存的也是路径outFile
        try {
            input=new FileInputStream(this.inFile);//保存的是路径inFile
            output=new FileOutputStream(this.outFile);//保存的是路径outFile
            byte data[]=new byte[2048];//每次拷贝的字节个数,
            int len=0;//保存每次拷贝长度
            while ((len=input.read(data))!=-1){//input.read(data)赋值给int类就是拷贝的字节数,当拷贝完就是-1;
                output.write(data,0,len);//data设置的意义就在于此,设置每次拷贝的字节个数
            }
        } finally {
        if(input!=null){ input.close(); }
        if (output!=null){ output.close(); }
        }
        long end=System.currentTimeMillis();
        return end-start;
    }
}
public class demo328 {
    public static void main(String[] args) throws IOException {
        System.out.println(new CopyUtil(args).Copy());
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值