FileInputStream和FileOutputStream实现任何文件类型的拷贝

文件拷贝

  1. 使用FileInputStream +FileOutputStream完成文件的拷贝
  2. 拷贝的过程应该是一边读,一边写
  3. 使用以上字节流拷贝文件时,文件类型随意,万能的。什么样的文件都能拷贝

表示如下图:
在这里插入图片描述

实现代码

package Filecopy01;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

/*
* 使用FileInputStream +FileOutputStream完成文件的拷贝
* 拷贝的过程应该是一边读,一边写
* 使用以上字节流拷贝文件时,文件类型随意,万能的
* */
public class Copy01 {
    
    
    public static void main(String[] args) {
    
    
        FileInputStream fis=null;
        FileOutputStream fos=null;

        try {
    
    
            fis=new FileInputStream("D:\\01.png");
            fos=new FileOutputStream("E:\\02.png");

            //最核心的:一边读,一边写
            byte[]bytes=new byte[1024*1024];//(一次拷贝1MB)

            int readCount=0;

            while((readCount=fis.read(bytes))!=-1){
    
    

                fos.write(bytes,0,readCount);
            }

            //刷新,输出流要刷新
            fos.flush();
        } catch (FileNotFoundException e) {
    
    
            e.printStackTrace();
        } catch (IOException e) {
    
    
            e.printStackTrace();
        } finally {
    
    
            //分开try,不能一起try
            //一起try的时候,其中一个 出现异常,可能会影响另一个流的关闭
            if(fis!=null){
    
    
                try {
    
    
                    fis.close();
                } catch (IOException e) {
    
    
                    e.printStackTrace();
                }
            }

            if(fos!=null){
    
    
                try {
    
    
                    fos.close();
                } catch (IOException e) {
    
    
                    e.printStackTrace();
                }
            }
        }
    }
}

再次强调

  1. 使用以上字节流拷贝文件时,文件类型随意,万能的。什么样的文件都能拷贝

运行截图

运行前

在这里插入图片描述

运行后

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
大小一模一样 ,也可以换成视频这些来拷贝

猜你喜欢

转载自blog.csdn.net/CSNN2019/article/details/114372549
今日推荐