Java实现文件复制的四种方式
背景:有很多的Java初学者对于文件复制的操作总是搞不懂,下面我将用4中方式实现指定文件的复制。
实现方式一:使用FileInputStream/FileOutputStream字节流进行文件的复制操作
1 private static void streamCopyFile(File srcFile, File desFile) throws IOException { 2 // 使用字节流进行文件复制 3 FileInputStream fi = new FileInputStream(srcFile); 4 FileOutputStream fo = new FileOutputStream(desFile); 5 Integer by = 0; 6 //一次读取一个字节 7 while((by = fi.read()) != -1) { 8 fo.write(by); 9 } 10 fi.close(); 11 fo.close(); 12 }
实现方式二:使用BufferedInputStream/BufferedOutputStream高效字节流进行复制文件
1 private static void bufferedStreamCopyFile(File srcFile, File desFile) throws IOException { 2 // 使用缓冲字节流进行文件复制 3 BufferedInputStream bis = new BufferedInputStream(new FileInputStream(srcFile)); 4 BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(desFile)); 5 byte[] b = new byte[1024]; 6 Integer len = 0; 7 //一次读取1024字节的数据 8 while((len = bis.read(b)) != -1) { 9 bos.write(b, 0, len); 10 } 11 bis.close(); 12 bos.close(); 13 }
实现方式三:使用FileReader/FileWriter字符流进行文件复制。(注意这种方式只能复制只包含字符的文件,也就意味着你用记事本打开该文件你能够读懂)
1 private static void readerWriterCopyFile(File srcFile, File desFile) throws IOException { 2 // 使用字符流进行文件复制,注意:字符流只能复制只含有汉字的文件 3 FileReader fr = new FileReader(srcFile); 4 FileWriter fw = new FileWriter(desFile); 5 6 Integer by = 0; 7 while((by = fr.read()) != -1) { 8 fw.write(by); 9 } 10 11 fr.close(); 12 fw.close(); 13 }
实现方式四:使用BufferedReader/BufferedWriter高效字符流进行文件复制(注意这种方式只能复制只包含字符的文件,也就意味着你用记事本打开该文件你能够读懂)
1 private static void bufferedReaderWriterCopyFile(File srcFile, File desFile) throws IOException { 2 // 使用带缓冲区的高效字符流进行文件复制 3 BufferedReader br = new BufferedReader(new FileReader(srcFile)); 4 BufferedWriter bw = new BufferedWriter(new FileWriter(desFile)); 5 6 char[] c = new char[1024]; 7 Integer len = 0; 8 while((len = br.read(c)) != -1) { 9 bw.write(c, 0, len); 10 } 11 12 //方式二 13 /*String s = null; 14 while((s = br.readLine()) != null) { 15 bw.write(s); 16 bw.newLine(); 17 }*/ 18 19 br.close(); 20 bw.close(); 21 }
以上便是Java中分别使用字节流、高效字节流、字符流、高效字符流四种方式实现文件复制的方法!
转载于:https://www.cnblogs.com/hafiz/p/5452608.html
Java实现文件复制的四种方式相关推荐
- java直接调用复制文件,java中文件复制的4种方式,java文件的复制
java中文件复制的4种方式,java文件的复制 今天一个同事问我文件复制的问题,他一个100M的文件复制的指定目录下竟然成了1G多,吓我一跳,后来看了他的代码发现是自己通过字节流复制的,定义的字节数 ...
- Java反射之创建对象的四种方式
Java反射之创建对象的四种方式 1.使用new关键字 2.使用Java反射机制,反射构造器 3.使用克隆方式创建对象Cloneable 4.使用序列化Serializable 1.使用Java反射机 ...
- C++ 创建文件夹的四种方式
在开头不得不吐槽一下,我要的是简单明了的创建文件夹的方式,看得那些文章给的都是复杂吧唧的一大坨代码,不仔细看鬼知道写的是啥.因此,为了方便以后自己阅读,这里自己写一下 C++ 创建文件夹的四种方式: ...
- JAVA中集合输出的四种方式
在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello {public stati ...
- java中Map遍历的四种方式
java中Map遍历的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等)都可以用以下的方 ...
- Java 数组转List的四种方式
Java 数组转List的四种方式 第一种方式(未必最佳):使用ArrayList.asList(strArray) 使用Arrays工具类Arrays.asList(strArray)方式,转换 ...
- Java遍历Map对象的四种方式
关于java中遍历map具体哪四种方式,请看下文详解吧. 方式一 这是最常见的并且在大多数情况下也是最可取的遍历方式.在键值都需要时使用. 1 2 3 4 Map<Integer, Intege ...
- android java 多线程,Android多线程的四种方式
当我们启动一个App的时候,Android系统会启动一个Linux Process,该Process包含一个Thread,称为UI Thread或Main Thread.通常一个应用的所有组件都运行在 ...
- C++文件读取的四种方式
C++可以根据不同的目的来选取文件的读取方式,目前为止学习了C++中的四种文件读取方式. C++文件读取的一般步骤: 1.包含头文件 #include<fstream> 2.创建流对象:i ...
最新文章
- jquery怎么获取radio的值
- Apache Hook机制解析(中)——细节讨论
- Livemesh文件同步功能--使用图解
- 超级简单的mysql主从数据库配置攻略以及错误处理
- jsp mysql代码提示错误,Web工程出现错误mysql错误
- leetcode 1328. Break a Palindrome | 1328. 破坏回文串(贪心)
- UPS改造及终端流量监控系统
- 小度智能音响拆解 芯片_打磨小度智能音箱:深度拆解,发掘升级潜能
- 红橙Darren视频笔记 动画讲解 仿58同城 加载动画
- 好心酸!三星可折叠屏手机Galaxy Fold下月也无法发货
- 单向链表反转-JS实现
- 第九届蓝桥杯省赛C++A组第二题 ---星期一
- 华三 h3c ospf、rip 路由引入和路由策略
- Java进阶:SpringMVC中获取web.xml中的全局参数
- 双11当天,淘宝搜索如何让CPU使用率降45%,GMV提1% | 论文
- 华成英-模拟电子技术P8 放大电路的分析方法 讨论题目
- 强大的Android参数模拟器,自由修改手机型号、SDK版本号等信息
- 新疆计算机二级vb 试题,2013新疆维吾尔自治区WORD全国计算机等级考试二级VB试题及答案...
- 世界500强面试题(趣味智力测试题)
- 2012服务器系统有什么版本的,Windows server 2012操作系统有哪几个版本