中关村黑马程序员 --- 复制文本文件的两种方法

中关村黑马程序员 — 复制文本文件的两种方法

——Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ——-

 第一种方法通过字符流的两个缓冲区BufferedReader和BufferedWriter来复制文件
  步骤:
        1.创建一个读取流对象new FileReader(fileName)和文件相关联。
        2.创建一个读取流 的缓冲对象new BufferedReader( FileReader); 
        将需要被提高效率的流对象new FileReader(fileName)作为参数传递给缓冲区对象new BufferedReader( FileReader)的构造函数即可。
        3.创建一个字符写入流对象。 new FileWriter(fileName)和文件相关联
        4.创建一个 写入流 的缓冲对像new BufferedWriter(FileWriter );
          将需要被提高效率的流对象new FileWriter(fileName)作为参数传递给缓冲区对象new BufferedWriter( FileWriter )的构造函数即可。
       5.调用读流缓冲区对象new BufferedReader( FileReader)的功能方法readLine()读取文件数据字符, 并用while循环语句来读取文件里的所有数据
       6.分别调用缓冲区对象new BufferedReader( FileReader)的功能方法bufw.write(line),bufw.newline(), bufw.flush()来对文件的数据进行操作

import java.io.*;
class Bufferwr
{
public static void main(String[] args)

{        
    //建立字符输入输出流的引用,便于整个类的使用
       BufferedReader bufr =null;
       BufferedWriter bufw =null;

        try
        {  

             //建立字符输入流,关联文件A.java  进行异常处理
             FileReader fr = new FileReader("A.java");
              bufr =new BufferedReader(fr);

                 //建立字符输出流,关联文件 B.txt   
              FileWriter fw = new FileWriter("B.txt");            
               bufw = new BufferedWriter(fw);   
        // String line = bufr.readLine();
           String line =null;
                      //while循环,把读取的数据存写入到新建文件B.txt   
         while ((line =bufr.readLine())!=null)

         {
             bufw.write(line);
             bufw.newLine();
             bufw.flush();
         }
        }
        catch (IOException e)
        {  
            System.out.println(e.toString());
        //或throw new RuntimeException("缓冲区读写失败异常");
        }
        finally
         {  //  必须要执行的代码,并进行异常处理
              bufr.close()             
             try
             {  if(bufr!=null)
                bufr.close();
             }
             catch (IOException e)
             {
             System.out.println(e.toString());
            //或throw new RuntimeException("缓冲区读流关闭失败异常");
             }

               try
             {  if(bufw!=null)
                bufw.close();
             }
             catch (IOException e)
                System.out.println(e.toString());
            //或throw new RuntimeException("缓冲区写流关闭失败异常");
             }

          }






      FileReader fr = new FileReader("A.java");
    BufferedReader bufr =new BufferedReader(fr);

     FileWriter fw = new FileWriter("B.txt");
     BufferedWriter burw = new BufferedWriter(fw);


    System.out.println("Hello World!");



}

}

第二种方法通过字符流FileWriter和 FileReader复制来文件
步骤;1.创建一个new FileWriter(fileName)对象。该对象一被初始化就必须要明确被操作的文件。
在相应的目录下会自动建立一个文件fileName

    2.创建一个文件读取流对象new FileReader(fileName);,和指定名称的文件相关联。此文件fileName 已经预先存在内有数据,如果不存在,FileNotFoundException会发生异常
  3.自定义一个字符数组 char[] buf =new char[1204]。用于存储读到文件fileName的数据字符。
    //该read(char[])返回的是读到字符个数。
   4.调用读取流对象new FileReader(fileName)的功能方法read(char[]) 把读取到的字符都存储到数组里char[],往数组里读取了len次


  5.调用new FileWriter(fileName)对象的功能方法write(char[],off,len) ,把数组中的所欲数据写入流对象 创建的文件里

6.  写入流对象FileWriter fw =new FileWriter("B.txt");读取流对象FileReader fr =new FileReader("A.java");
     中转站数组 char[] buf = new char[1024];

public static void main(String[] args)
{
//建立字符输入输出流 引用
FileWriter fw=null;
FileReader fr =null;
try
{
//建立字符输入输出流对象 fw fr 并异常处理
fw =new FileWriter(“B.txt”);
fr =new FileReader(“A.java”);
char[] buf = new char[1024];

 //int len =fr.read(buf);
        int len =0;
      //while循环  把出数组读取的数据写入到新建文件B.txt里
             while((len = fr.read(buf))=-1)
                {
                 fw.write(char[],0,len);
             }
    }
    catch (IOException e)
    {

              System.out.println(e.toString());
            //或throw new IOException ("写读流失败异常");
    }
    finally
          {
            if(fw!=null)
              //fw.close()是必须执行代码,放在finally{},并进行异常处理   
            try
            {
                fw.close();
            }
            catch (IOException e)
            { System.out.println(e.toString());
            //或throw new IOException ("写流关闭失败异常");
            }

            if(fr!=null)

            try
            {
                    fr.close();
            }
            catch (IOException e)
            { System.out.println(e.toString());
            //或throw new IOException ("读流关闭失败异常");
            }

      }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值