初学Java,利用IO流写一个简易的文件拷贝代码

2020-04-18  本文已影响0人  石头时代zy

重点:
1、这里需要用到两个流FileInputStream和FileOutputStream都属于字节流,两个流关闭时不要同时try,要分开try。
2、输出流使用FileOutputStream(String name, boolean append)这种构造方法,不会将原创建的文件覆盖。设置每次拷贝大小。
3、输出流的最后要刷新,才能保证管道清空,使用flush()方法。

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

public class Test{
    public static void main(String[] args) {
        //声明两个流,赋null
        FileInputStream fis = null;
        FileOutputStream fos = null;
        try {
            //创建输出流对象,末端继续添加方式true
            fos = new FileOutputStream("输出路径及文件名",true);
            //创建输入流对象
            fis = new FileInputStream("需要拷贝的文件路径");
            //每次拷贝1MB字节
            byte[] bytes = new byte[1024 * 1024];
            int readCount = 0;
            //要采取write(byte b[], int off, int len)的方式写,不然会多拷贝
            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
            if (fos != null) {
                try {
                    fos.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

    }
}
上一篇下一篇

猜你喜欢

热点阅读