文件拷贝(6种方式)
大家好,最近我总结了一些文件拷贝的方法,今天我和大家分享一下这些方法。
我们要注意一点:我们只能对标准文件进行拷贝,不能对目录进行拷贝。
第一种:用InputStream和OutputStream对文件进行拷贝(用InputStream和OutputStream可以对任意的标准文件进行拷贝)
try (//需要读取的原始文件输入流InputStream inputStream = new FileInputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\m.mp4");//需要拷贝到的目标文件的输出流OutputStream outputStream = new FileOutputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok.mp4");) {System.out.println("开始拷贝");//创建字节缓冲区byte[] b = new byte[1024 * 1024];//每次实际读取长度int len = 0;//循环读写while ((len = inputStream.read(b)) != -1) {//将字节数组从0开始,写入len长到输出流outputStream.write(b, 0, len);}System.out.println("拷贝结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
第二种:用Reader和Writer对文件进行拷贝(用Reader和Writer只能对纯文本进行拷贝比如:txt文件、java文件、HTML文件、css文件等)
try (Reader reader = new FileReader("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\新建文本文档.txt");Writer writer = new FileWriter("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok.txt");) {System.out.println("开始拷贝");char[] ch = new char[1024 * 1024];int len = 0;while ((len = reader.read(ch)) != -1) {writer.write(ch, 0, len);}System.out.println("拷贝结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
第三种:用BufferedInputStream和BufferedOutputStream缓冲流对文件进行拷贝(BufferedInputStream和BufferedOutputStream缓冲流对InputStream和OutputStream进行包装提高了效率,可以对任意的标准文件进行拷贝)。
try (BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\m.mp4"));BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(new FileOutputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok1.mp4"));) {System.out.println("开始拷贝");byte[] b = new byte[1024 * 1024];int len = 0;while ((len = bufferedInputStream.read(b)) != -1) {bufferedOutputStream.write(b, 0, len);}System.out.println("拷贝结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
第四种:用BufferedReader和BufferedWriter缓冲流对文件进行拷贝(BufferedReader和BufferedWriter缓冲流对Reader和Writer进行包装提高了效率,同样它也只能对纯文本进行拷贝)。
try (BufferedReader bufferedReader = new BufferedReader(new FileReader("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\新建文本文档.txt"));BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok1.txt"));) {/*第一种*/
// System.out.println("开始拷贝");
// char[] ch = new char[1024 * 1024];
// int len = 0;
// while ((len = bufferedReader.read(ch)) != -1) {
// bufferedWriter.write(ch, 0, len);
// }
// System.out.println("拷贝结束");/*第二种*/System.out.println("开始拷贝");String src = "";//每次读取一行数据while ((src = bufferedReader.readLine()) != null) {//写入读取的一行文本()bufferedWriter.write(src);//手动加入一个换行标记到文件,否则所有内容会在同一行显示bufferedWriter.newLine();//将缓冲区的数据强制输出到目标输出源bufferedWriter.flush();}System.out.println("拷贝结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
第五种:用InputStreamReader和OutputStreamWriter转换流把InputStream和OutputStream转换成BufferedReader和BufferedWriter对文件进行拷贝(它也只能对纯文本进行拷贝)
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\新建文本文档.txt")));BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok2.txt")));) {System.out.println("开始拷贝");String line = "";while ((line = bufferedReader.readLine()) != null) {bufferedWriter.write(line); bufferedWriter.newLine(); bufferedWriter.flush();}System.out.println("拷贝结束");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
第六种:用RandomAccessFile对文件进行拷贝(RandomAccessFile可以对任意的标准文件进行拷贝,RandomAccessFile即可以对文件进行读取,也可以对文件进行写入)
try (//需要读取的原始文件输入流RandomAccessFile read = new RandomAccessFile("C:\\Users\\HP\\Desktop\\新建文件夹 (5)\\m.mp4", "r");//需要拷贝到的目标文件的输出流RandomAccessFile write = new RandomAccessFile("C:\\Users\\HP\\Desktop\\新建文件夹 (6)\\ok3.mp4", "rw");) {System.out.println("开始拷贝");byte[] b = new byte[1024 * 1024];int len = 0;while ((len = read.read(b)) != -1) {write.write(b, 0, len);}System.out.println("拷贝完成!");} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}
文件拷贝(6种方式)相关推荐
- C语言文件拷贝-四种方式
利用文件IO的方式,实现2个文件的拷贝 int copy_by_fileIO(const char *dest_file_name, const char *src_file_name) {//OKi ...
- java aio复制文件_java复制文件的4种方式及拷贝文件到另一个目录下的实例代码...
尽管Java提供了一个可以处理文件的IO操作类. 但是没有一个复制文件的方法. 复制文件是一个重要的操作,当你的程序必须处理很多文件相关的时候. 然而有几种方法可以进行Java文件复制操作,下面列举出 ...
- 创建和应用Java包文件的两种方式(转)
创建和应用Java包文件的两种方式(转) <Java编程艺术>章节选登.作者:高永强 清华大学出版社 (即将出版) 12.1 包--package ... 12.1.1 包命名规 ...
- 查看binlog文件的2种方式
2019独角兽企业重金招聘Python工程师标准>>> 查看binlog文件的2种方式 1.使用show binlog events a.获取binlog文件列表 mysql> ...
- JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式
JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式,以及如何使用Eclips Memory Analyzer(MAT)插件进行堆内存分析. 方法一: jmap -du ...
- java读取XML文件的四种方式
java读取XML文件的四种方式 Xml代码 <?xml version="1.0" encoding="GB2312"?> <RESULT& ...
- java oom dump_JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式
JVM 在遇到OOM(OutOfMemoryError)时生成Dump文件的三种方式,以及如何使用Eclips Memory Analyzer(MAT)插件进行堆内存分析. 方法一: jmap -du ...
- java 文件下载详解_Java 从网上下载文件的几种方式实例代码详解
废话不多说了,直接给大家贴代码了,具体代码如下所示: package com.github.pandafang.tool; import java.io.BufferedOutputStream; i ...
- Java下载文件的几种方式
public HttpServletResponse download(String path, HttpServletResponse response) {try {// path是指欲下载的文件 ...
- 用Python读取CSV文件的5种方式
典型的数据集stocks.csv: 一个股票的数据集,其实就是常见的表格数据.有股票代码,价格,日期,时间,价格变动和成交量.这个数据集其实就是一个表格数据,有自己的头部和身体. 第一招:简单的读取 ...
最新文章
- 「Excel技巧」Excel技巧之如何看文件里的宏?
- 艾伟_转载:C#语言基础常见问题汇总
- PM2.5检测 -- PMS7003 采集和 MQTT 传输
- iOS端JSON转Model链式编程框架SuperKVC使用方法与原理
- ABB机器人与PC计算机控制口连接 超级终端 命令清单
- YBTOJ洛谷P2387: 魔法森林(LCT)
- HA:HADOOP高可用机制
- python进阶20装饰器
- 轻量级java开发工具_C++主流开发工具推荐
- 一款非常好用的日期插件(强烈推荐)
- httpclient3与httpclient4不同版本使用方法
- 组态王c语言延时1秒,(组态王软件详细教程第三讲让画面动起来.doc
- Win11系统电脑怎么C盘扩容教学
- 平面设计和包装设计的区别关系是什么
- 剑指offer(51-59题)详解
- 100篇精选文章带你玩转TCP/IP协议
- mysql中ddl和ddm_DDL与DML问题
- PMP项目管理是什么?
- TMS320C6678开发笔记---IBL编译与分析4
- word2016使用Latex编辑公式
热门文章
- java实现http的GET/POST请求封装类-HttpRequest
- Mysql添加报错 MySqlException: Incorrect string value: ‘\xE5\xAF\xBC\xE5\x85\xA5...‘ for
- 31页智慧文旅云服务平台建设方案【附下载】
- 百度地图语音导航开发
- 美团校招在线考试笔试题:钱币面值组合
- 大数据的处理是怎样的过程
- 一文带你详解你不知道的ADL原理
- win10通过ping命令来检测网速
- c语言小球碰壁,小球碰壁效果
- python收取126或163邮件