容器与文件操作(四)文件的拷贝
来源:互联网 发布:淘宝抢红包群 编辑:程序博客网 时间:2024/05/08 01:07
上次说了文件的读和写操作,文件拷贝其实就是把文件的读和写结合起来。其实现基本思想还是以程序为桥梁,一边不断的从src文件中读取数据流,同时写出到指定的dest文件中。前面说过,字节流可以处理一切格式的文件,可以把字符流看做字节流的特例,在进行处理时用read()和write()方法以及char[]数组进行读取和写出即可,其他部分是一样的。这里以字节流为例将文件的拷贝分为下面4个步骤:
1、建立联系: 依程序为中心,用File对象建立源头文件(src)和目的地文件(dest)的联系,注意src必须存在且为文件,这里可以加一个判断;
2、选择流:文件输入流 InputStream FileInputStream
文件输出流 OutputStream FileOutputStream
3、操作:进行文件的拷贝,这里又分为两部分:读取和写出。不同于前面单独进行读写的时候,是将读到的内容打印在控制台,或者是将程序中的String写入到指定文件中,这里两个是同时进行操作的,即:程序将src读到的内容不断写出到指定文件中。注意有可能最后一部分输出流没有被读取到,这里我们使用方法flush(),它的作用是刷新此输出流并强制写出所有缓冲的输出字节。
1、建立联系: 依程序为中心,用File对象建立源头文件(src)和目的地文件(dest)的联系,注意src必须存在且为文件,这里可以加一个判断;
2、选择流:文件输入流 InputStream FileInputStream
文件输出流 OutputStream FileOutputStream
3、操作:进行文件的拷贝,这里又分为两部分:读取和写出。不同于前面单独进行读写的时候,是将读到的内容打印在控制台,或者是将程序中的String写入到指定文件中,这里两个是同时进行操作的,即:程序将src读到的内容不断写出到指定文件中。注意有可能最后一部分输出流没有被读取到,这里我们使用方法flush(),它的作用是刷新此输出流并强制写出所有缓冲的输出字节。
4、释放资源:关闭两个流,这里注意为了确保所有字节都被读取到,我们一般默认先打开的流后关闭,即:先关闭输出流再关闭输入流。下面是我写的文件拷贝代码:
/** * 文件的拷贝 * @param 源文件路径 * @param 目录文件路径 * @throws FileNotFoundException,IOException * @return */public static void copyFile(String srcPath,String destPath) throws FileNotFoundException,IOException {//1、建立联系 源(存在且为文件)+目的地(文件可以不存在)File src=new File(srcPath);File dest=new File(destPath);if(!src.isFile()){//不是文件或者为nullSystem.out.println("只能拷贝文件");throw new IOException("只能拷贝文件");}//2、选择流InputStream is=new FileInputStream(src);OutputStream os=new FileOutputStream(dest);//3、文件的拷贝 循环+读取+写出byte[] flush=new byte[1024];int len=0;//读取while(-1!=(len=is.read(flush))){//写出os.write(flush, 0, len);}os.flush();//强制刷出//关闭流:先打开的后关闭os.close();is.close();}最后在主方法中声明两个文件即可。
0 0
- 容器与文件操作(四)文件的拷贝
- 容器与文件操作(三)文件的读写操作
- 文件的拷贝操作
- docker中主机与容器互相拷贝文件的方法
- docker中宿主机与容器(container)互相拷贝传递文件的方法
- java的输入输出流与文件操作(3 .文件拷贝)
- VMware与主机共享文件夹--进行文件的拷贝操作
- 四种文件(图片)拷贝的方法
- IO容器与文件操作(二)File类的基本操作
- 【Docker】Docker容器与宿主机互相拷贝传递文件
- IO容器与文件操作(一)认识File类
- OC中(简单)自定义时间|操作文件部分一(文件的拷贝|归档与解归档)
- java 文件拷贝操作
- JavaIO操作-拷贝文件
- android的文件、目录操作(四)
- android从零开始(四)文件的操作
- java对文件拷贝的简单操作
- 四线程同时拷贝文件!
- 递归函数大练兵
- android:lineSpacingExtra的兼容性处理
- 指令系统
- js正则验证表单
- synchronized、volatile、Atomic区别和用法
- 容器与文件操作(四)文件的拷贝
- ATS iOS 升级HTTPS通过ATS你所要知道的
- java程序题解析:good and gbc
- 面向未来的跨界开发技术(下)
- Mis—Pos介绍
- SQL 内联、左联、右联合、全联(转载学习明白加实战)
- C++从零实现深度神经网络之六——实战手写数字识别(sigmoid和tanh)
- python多线程编程(6): 队列同步
- Paper tp read