博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复制文件
阅读量:5067 次
发布时间:2019-06-12

本文共 2692 字,大约阅读时间需要 8 分钟。

步骤:

  (1) 要复制文件,首先得先要有文件;

  (2) 然后把文件里面的内容读取到输入流中;

  (3) 再把输入流中的内容写到输出流中;

  (4) 再从输出流中写入到目的文件中;

  (5) 最后牢记要关闭流通道。

① 当文件得大小超过 int 时,应该分开一部分一部分的传,同时传时会溢出,用byte数组当做缓冲区。注意关闭流的顺序。

1 package copy; 2  3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.InputStream; 9 import java.io.OutputStream;10 11 public class Test1 {12 13     public static void main(String[] args) {14         // TODO Auto-generated method stub15         File from = new File("D:/安装包/java/eclipse-jee-oxygen-2-win32-x86_64.zip");16         File to = new File("D:/"+from.getName());17         try {18             InputStream is = new FileInputStream(from);19             OutputStream os = new FileOutputStream(to,true);20             byte[] b = new byte[1024];21             int i =is.read(b);22             while(i!=-1) {23                 os.write(b, 0, i);24                 i=is.read(b);25                 System.out.println(i);26             }27             os.close();//先关闭输出流28             is.close();//再关闭输入流29         } catch (FileNotFoundException e) {30             // TODO Auto-generated catch block31             e.printStackTrace();32         } catch (IOException e) {33             // TODO Auto-generated catch block34             e.printStackTrace();35         }36         System.out.println("复制完成");37     }38 }

②当文件大小没有超过 int 时,可以把文件的大小设置为数组的大小。注意关闭流的顺序。

1 package copy; 2  3 import java.io.File; 4 import java.io.FileInputStream; 5 import java.io.FileNotFoundException; 6 import java.io.FileOutputStream; 7 import java.io.IOException; 8 import java.io.InputStream; 9 import java.io.OutputStream;10 11 public class Test0 {12 13     public static void main(String[] args) {14         // TODO Auto-generated method stub15         File from = new File("D:/东软实训/面试题目/Java面试宝典.doc");16         File to = new File("D:/"+from.getName());17         try {18             /*读源文件*/19             InputStream is = new FileInputStream(from);20             byte[] b = new byte[(int) from.length()];21             is.read(b);22             is.close();//读完后,输入流此时就可以关闭了23             /*写到目标文件*/24             OutputStream os = new FileOutputStream(to);25             os.write(b);26             os.close();//关闭输出流27             System.out.println("复制完成");28         } catch (FileNotFoundException e) {29             // TODO Auto-generated catch block30             e.printStackTrace();31         } catch (IOException e) {32             // TODO Auto-generated catch block33             e.printStackTrace();34         }35     }36 }

若有错误之处,欢迎指正。谢谢!

转载于:https://www.cnblogs.com/hong-yu0415/p/9146421.html

你可能感兴趣的文章
编写一个函数isMerge,判断一个字符串str是否可以由其他两个字符串part1和part2“组合”而成...
查看>>
NYOJ-613//HDU-1176-免费馅饼,数字三角形的兄弟~~
查看>>
graphite custom functions
查看>>
一个自己写的判断2个相同对象的属性值差异的工具类
查看>>
oracle连接的三个配置文件(转)
查看>>
Python内置函数(29)——help
查看>>
oracle导出/导入 expdp/impdp
查看>>
Objective - C基础: 第四天 - 10.SEL类型的基本认识
查看>>
Android TextView加上阴影效果
查看>>
《梦断代码》读书笔记(三)
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
输入月份和日期,得出是今年第几天
查看>>
pig自定义UDF
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>