黑马程序员技术交流社区

标题: 文件复制问题 [打印本页]

作者: 于丹    时间: 2013-7-10 12:16
标题: 文件复制问题
本帖最后由 杨兴庭 于 2013-7-11 21:18 编辑

编写程序拷贝一个文件, 尽量使用效率高的方式
作者: 小石头39910    时间: 2013-7-10 13:11
  1. //用缓冲区来复制文件
  2. import java.io.*;
  3. class CopyOfBuffered
  4. {
  5.         public static void main(String[] args)
  6.         {
  7.                 BufferedReader br=null;
  8.                 BufferedWriter bw=null;
  9.                 try
  10.                 {
  11.                 //创建读取缓冲区
  12.              br=new BufferedReader(new FileReader("BufferedDemo.txt"));
  13.                 //创建写入缓冲区
  14.          bw=new BufferedWriter(new FileWriter("BufferedWriterDemo.txt"));
  15.                  String line=null;
  16.                  while((line=br.readLine())!=null)
  17.                         {
  18.               bw.write(line);
  19.                           bw.newLine();
  20.               bw.flush();
  21.                          // System.out.println(line);
  22.                         }
  23.                 }
  24.                 catch (IOException e)
  25.                 {
  26.                 System.out.println("出错啦!");
  27.                 }
  28.                 finally
  29.                 {
  30.            if(bw!=null)
  31.                         {
  32.                          try
  33.                          {
  34.                                 bw.close();
  35.                          }
  36.                          catch (IOException e)
  37.                       {
  38.                         System.out.println("出错啦!");
  39.                       }


  40.                         }
  41.             if(br!=null)
  42.                         {
  43.                          try
  44.                          {
  45.                                 br.close();
  46.                          }
  47.                          catch (IOException e)
  48.                       {
  49.                         System.out.println("出错啦!");
  50.                       }


  51.                         }
  52.                 }
  53.   }
  54. }
复制代码

作者: 陌路行者    时间: 2013-7-10 13:35
这不是基础测试题么
作者: majunm    时间: 2013-7-10 21:40
本帖最后由 majunm 于 2013-7-10 21:42 编辑

//用缓冲区来复制文件

import java.io.*;

class CopyOfBuffered

{

        public static void main(String[] args)

        {

                //BufferedReader br=null:
//改成这个
BufferedInputStream bfin=null
               // BufferedWriter bw=null;
BufferedOutputStream bfos=null;
                try

                {

                //创建读取缓冲区

             bfin=new BufferedInputStream(new FileInputStream("BufferedDemo.txt"));

                //创建写入缓冲区

        //改 outputstream bw=new BufferedWriter(new FileWriter("BufferedWriterDemo.txt"));
bfos=new BufferedOutputStream(new FileOutputStream("目的地....."));
                 String line=null;

                 while((line=br.readLine())!=null)

                        {

              bw.write(line);//自己改  

                          bw.newLine();

              bw.flush();

                         // System.out.println(line);

                        }

                }

                catch (IOException e)

                {

                System.out.println("出错啦!");

                }

                finally

                {

           if(bw!=null)

                        {

                         try

                         {

                                bw.close();

                         }

                         catch (IOException e)

                      {

                        System.out.println("出错啦!");

                      }





                        }

            if(br!=null)

                        {

                         try

                         {

                                br.close();

                         }

                         catch (IOException e)

                      {

                        System.out.println("出错啦!");

                      }





                        }

                }

  }

}

给上面的类变量改下  我懒得改了  字节流比字符流 通用  题目要求copy一个文件 万一是MP3 格式 BufferedReader()搞不定的
作者: 左手神刀    时间: 2013-7-11 18:35
/*
* 5、 编写程序拷贝一个文件, 尽量使用效率高的方式.
*
* */
package  com.itheima;
import java.io.*;
class Test5
{
public static void main(String [] args)
{
  
  copyFile("被复制的测试文件.java","刚复制的文件.txt");
}
public static void copyFile(String filename,String copyfilename)
{                          //finlename 代表要复制的文件名。copy filename代表复制后的文件名。
  FileWriter  fw=null;
  FileReader  fr=null;
  
  try
  {
   fw=new FileWriter(copyfilename);//根据传递进来的参数创建对应的流对象。
   fr=new FileReader(filename);////根据传递进来的参数创建对应的流对象。
   
   char[] buf=new char[1024];//定义两个流的中间数据容器长度为1024
   int len=0;
   while((len=fr.read(buf))!=-1)//写入流每次从原文件读取1024个字节
   {
    fw.write(buf,0,len);//写出流每次将写入流读取到的数据写出到“刚复制的文件.txt”文件中
   }
   System.out.println("复制成功");
  }
  catch( IOException e)
  {
   throw new RuntimeException("数据写入失败");
  }
  finally
  {
   if(fr!=null)
    try
    {
     fr.close();
    }
    catch(IOException e)
    {   
     System.out.println("读取文件流关闭失败!"+e);
    }
   if(fw!=null)
    try
    {
     fw.close();
    }
    catch(IOException e)
    {
     System.out.println("写入文件流关闭失败!"+e);
    }
  }  
}

}
我的基础测试题也是这个,把代码贴出来 分享下!!!!!!!!!
所谓高效就是要用到缓冲 不让磁盘指针在磁盘上老是来回跑。  

作者: xuaner0719    时间: 2013-7-11 18:43
学习一下不错的
作者: Star-∂ємση    时间: 2014-7-11 20:51
这个技术是神马?不知道哪方面的知识,我得翻阅资料
作者: Star-∂ємση    时间: 2014-7-11 20:52
小石头39910 发表于 2013-7-10 13:11

这个技术是神马?不知道是Java上哪方面的东西。。




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