黑马程序员技术交流社区

标题: 文件复制的两种方式 [打印本页]

作者: 奋发吧小白    时间: 2014-8-27 14:10
标题: 文件复制的两种方式
  1. import java.io.*;
  2. class  CopyTest
  3. {
  4.         public static void main(String[] args)
  5.         {
  6.                  copy_2();
  7.         }
  8.         //方式一:读取一个复制一个
  9.         public static void copy_1()
  10.         {
  11.                 FileWriter fw = null;
  12.                 FileReader fr = null;
  13.                 try
  14.                 {
  15.                         fw = new FileWriter("hehe_copy.txt");//创建一个目的文件
  16.                         fr = new FileReader("Test.txt");//读取出需要被复制的文件

  17.                         int ch = 0;
  18.                         while ((ch = fr.read())!=-1)
  19.                         {
  20.                                  fw.write(ch);
  21.                         }
  22.                 }
  23.                 catch (IOException e)
  24.                 {
  25.                         System.out.println(e.toString());
  26.                 }
  27.                 finally
  28.                 {
  29.                         if (fr!=null)
  30.                         {
  31.                                 try
  32.                                 {
  33.                                         fr.close();
  34.                                 }
  35.                                 catch (IOException e)
  36.                                 {
  37.                                         System.out.println(e.toString());
  38.                                 }
  39.                                
  40.                         }
  41.                         if (fw!=null)
  42.                         {
  43.                                 try
  44.                                 {
  45.                                         fw.close();
  46.                                 }
  47.                                 catch (IOException e)
  48.                                 {
  49.                                         System.out.println(e.toString());
  50.                                 }
  51.                                
  52.                         }
  53.                 }
  54.         }
  55.         //方式二:先复制到数组,然后一次性把数组中的元素取出!再接着往数组中存储,取出!
  56.         public static void copy_2()
  57.         {
  58.                         FileWriter fw = null;
  59.                         FileReader fr = null;
  60.                         try
  61.                         {
  62.                                 fw = new FileWriter("hehe_copy.txt");//创建一个目的文件
  63.                                 fr = new FileReader("Test.txt");//读取出需要被复制的文件

  64.                                 char [] buf = new char[1024];
  65.                                 int num = 0;
  66.                                 while ((num = fr.read(buf))!=-1)
  67.                                 {
  68.                                         fw.write(buf);
  69.                                 }
  70.                         }
  71.                         catch (IOException e)
  72.                         {
  73.                                 System.out.println(e.toString());
  74.                         }
  75.                         finally
  76.                         {
  77.                                 if (fr!=null)
  78.                                 {
  79.                                         try
  80.                                         {
  81.                                                 fr.close();
  82.                                         }
  83.                                         catch (IOException e)
  84.                                         {
  85.                                                 System.out.println(e.toString());
  86.                                         }
  87.                                        
  88.                                 }
  89.                                 if (fw!=null)
  90.                                 {
  91.                                         try
  92.                                         {
  93.                                                 fw.close();
  94.                                         }
  95.                                         catch (IOException e)
  96.                                         {
  97.                                                 System.out.println(e.toString());
  98.                                         }
  99.                                        
  100.                                 }
  101.                         }
  102.                 }
  103.         }

复制代码



作者: ximi    时间: 2014-8-27 20:02
谢谢分享哦
作者: wyf20106    时间: 2014-8-27 20:50
学习下谢谢分享
作者: 低调小邦    时间: 2014-8-28 01:12
谢谢分享~~

作者: wfaly    时间: 2014-8-28 09:48
谢谢  楼主 分享..

作者: 粺¹³¼畅    时间: 2014-8-28 09:54
哈哈,毕老师的视频,昨天刚看到这个地方。。。
作者: alexchy    时间: 2014-8-28 10:38
谢谢分享!
作者: 怀念黑海岸    时间: 2014-8-28 11:03
第二种方式其实就是定义自己的缓冲区,在对字节流操作时这种手段可以有效提高代码执行效率,而缓冲流Buffered...是可以操作字符流的。这儿为了提高效率楼主可以使用缓冲流。
作者: alee    时间: 2014-8-28 22:06
谢谢楼主,复习了
作者: Sakuratossi    时间: 2014-8-29 00:32
还是用缓冲快。。
作者: 小子考驾照    时间: 2014-8-29 01:12
很高端啊,还没有看到这个地方
作者: Louis.hui    时间: 2014-8-29 01:49
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2