1.  
  2. import java.io.FileInputStream;
  3. import java.io.FileNotFoundException;
  4. import java.io.FileOutputStream;
  5. import java.io.IOException;
  6.  
  7. public class FileCopyStream {
  8.  
  9. public static void main(String[] args) {
  10. //fileCopy0("b.dat","d:/ex/a/","d:/ex/b/");
  11. //fileCopy1("b.dat","d:/ex/a/","d:/ex/b/");
  12. //fileCopy2("b.dat","d:/ex/a/","d:/ex/b/");
  13. fileCopy2("1.mp3","d:/ex/a/","d:/ex/b/");
  14. //fileCopy3("c.mp3","d:/ex/a/","d:/ex/b/");
  15. //fileCopy3("d.txt","d:/ex/a/","d:/ex/b/");
  16.  
  17. }
  18. private static void fileCopy0(String fileName, String dir1,String dir2){
  19. try {
  20. FileInputStream in = new FileInputStream(dir1+fileName);
  21. FileOutputStream out = new FileOutputStream(dir2+fileName);
  22. byte[] buffer = new byte[512];
  23. in.read(buffer);
  24. out.write(buffer);
  25. } catch (FileNotFoundException e) {
  26. e.printStackTrace();
  27. } catch (Exception e) {
  28. }
  29. }
  30.  
  31. //学习关流
  32. private static void fileCopy1(String fileName, String dir1,String dir2){
  33. FileInputStream in = null;
  34. FileOutputStream out = null;
  35. try {
  36. in = new FileInputStream(dir1+fileName);
  37. out = new FileOutputStream(dir2+fileName);
  38. byte[] buffer = new byte[512];
  39. in.read(buffer);
  40. out.write(buffer);
  41. } catch (FileNotFoundException e) {
  42. e.printStackTrace();
  43. } catch (Exception e) {
  44. }finally{
  45. try {
  46. in.close();
  47. out.close();
  48. } catch (IOException e) {
  49. throw new RuntimeException("文件无法关闭");
  50. }
  51. }
  52. }
  53. //可以拷贝大文件
  54. private static void fileCopy2(String fileName, String dir1,String dir2){
  55. FileInputStream in = null;
  56. FileOutputStream out = null;
  57. try {
  58. in = new FileInputStream(dir1+fileName);
  59. out = new FileOutputStream(dir2+fileName);
  60. byte[] buffer = new byte[512];
  61. int num = 0;
  62. do{
  63. num = in.read(buffer);
  64. out.write(buffer,0,num);
  65. }while(num>=0);
  66.  
  67. } catch (FileNotFoundException e) {
  68. e.printStackTrace();
  69. } catch (Exception e) {
  70. e.printStackTrace();
  71. }finally{
  72. try {
  73. in.close();
  74. out.close();
  75. } catch (IOException e) {
  76. throw new RuntimeException("文件无法关闭");
  77. }
  78. }
  79. }
  80.  
  81. //可以拷贝大文件
  82. private static void fileCopy3(String fileName, String dir1,String dir2){
  83. FileInputStream in = null;
  84. FileOutputStream out = null;
  85. try {
  86. in = new FileInputStream(dir1+fileName);
  87. out = new FileOutputStream(dir2+fileName);
  88. byte[] buffer = new byte[512];
  89. int num=0;
  90. while(in.available()>0){
  91. num = in.read(buffer);
  92.  
  93. //最简单的加密
  94. for(int i=0;i<num;i++){
  95. buffer[i] = (byte)(buffer[i]+1);
  96. }
  97.  
  98. out.write(buffer,0,num);
  99. }
  100.  
  101. } catch (FileNotFoundException e) {
  102. e.printStackTrace();
  103. } catch (Exception e) {
  104. }finally{
  105. try {
  106. in.close();
  107. out.close();
  108. } catch (IOException e) {
  109. throw new RuntimeException("文件无法关闭");
  110. }
  111. }
  112. }
  113.  
  114. }

java之 ------ 文件拷贝的更多相关文章

  1. Java实现文件拷贝的4种方法.

    原文地址:http://blog.csdn.net/ta8210/article/details/2073817 使用 java 进行文件拷贝 相信很多人都会用,,不过效率上是否最好呢? 最近看了看N ...

  2. java对文件拷贝的简单操作

    package fileInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNot ...

  3. 总结java中文件拷贝剪切的5种方式-JAVA IO基础总结第五篇

    本文是Java IO总结系列篇的第5篇,前篇的访问地址如下: 总结java中创建并写文件的5种方式-JAVA IO基础总结第一篇 总结java从文件中读取数据的6种方法-JAVA IO基础总结第二篇 ...

  4. java Servlet文件拷贝的模板代码

    //通过response对象获得一个输出流对象 ServletOutputStream os = response.getOutputStream(); //获得要拷贝文件的绝对路径 String r ...

  5. Java学习-045-目录中文件拷贝

    挺晚的了,直接上码.敬请各位小主参阅,若有不足之处,敬请指正,非常感谢! 目录文件拷贝源码: /** * <strong>目录拷贝</strong><br> * & ...

  6. Java IO和Java NIO在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

  7. (java)从零开始之--异常处理(以文件拷贝为例)

    开发过程中避免不了对异常的处理,但是异常的处理又不能乱throw 下面是简单的抛异常处理 public static void CopyFile(String souFile,String dirFi ...

  8. Java基础IO文件拷贝练习题

    /** * 编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt. */ 1.我们看到这个题还是用大化小的思想来做 分析:1.拷贝 & ...

  9. Java IO和Java NIO 和通道 在文件拷贝上的性能差异分析

    1.  在JAVA传统的IO系统中,读取磁盘文件数据的过程如下: 以FileInputStream类为例,该类有一个read(byte b[])方法,byte b[]是我们要存储读取到用户空间的缓冲区 ...

随机推荐

  1. 小白学习安全测试(一)——Http协议基础

    Http协议基础 Web技术发展[http://www.cnblogs.com/ProgrammerGE/articles/1824657.html] 静态WEB[网页] 动态WEB 属于一种应用程序 ...

  2. asp.net后台获取前台页面大小

    前台代码如下:<input type="hidden" runat="server" value="0" id="txBod ...

  3. Java编程的逻辑 (37) - 泛型 (下) - 细节和局限性

    本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http:/ ...

  4. 切换Intellij ieda 调试为Visual Studio风格

  5. Nwjs开发桌面应用

    使用Nwjs开发桌面应用体验 https://www.cnblogs.com/zhupengfei/p/8906131.html 之前一直用.net开发桌面应用,最近由于公司需要转为nodejs,但也 ...

  6. 【AtCoder】ARC089

    C - Traveling 先看能不能走到,再看看奇偶性是否相同 #include <bits/stdc++.h> #define fi first #define se second # ...

  7. JDBC事务与事务隔离级别详解

    事务基本概念 一组要么同时执行成功,要么同时执行失败的SQL语句.是数据库操作的一个执行单元. 事务开始于: 连接到数据库上,并执行一条DML语句insert.update或delete 前一个事务结 ...

  8. Storm介绍及核心组件和编程模型

    离线计算 离线计算:批量获取数据.批量传输数据.周期性批量计算数据.数据展示 代表技术:Sqoop批量导入数据.HDFS批量存储数据.MapReduce批量计算数据.Hive批量计算数据.azkaba ...

  9. HTML5 标签语法变化和使用概念

    1.H5与H4的区别 概念的变化: H5更注重内容与结构,不再只专注于表现. 声明与标签: 新的声明背简化: <!DOCTYPE html> <meta charset=utf-8& ...

  10. oracle数据库连接错误解决办法

    ORA-28547 连接服务器失败,可能是Oracle Net 管理错误 原文地址:http://www.linuxidc.com/Linux/2014-11/109686.htm 上周去给客户培训O ...