java中高效缓冲区的扩展方法和文本复制

本文介绍Java中BufferedWriter的newLine()方法用于换行,及BufferedReader的readLine()方法实现逐行读取文件,并通过实例展示了如何利用这两个方法高效地复制文件。

-------------------------------------java中高效缓冲区的扩展方法和文本复制 ----------------------------

 

高效缓冲区的输出流BufferedWriter的扩展方法newLine()

 

newline()方法可以输出换行。相当于\r\n

 

范例:向文件写入十个“java太好学了,真简单!”,并要求换行

 

public  class BufferedWriterDemo2 {

 

    public  static  void main(String[] args) {

       

        writer();

       

    }

   

    /**

     * 使用高效缓冲流来向d.txt的文件中导入10“java太好学了,真简单!

     */

    public static  void writer() {

        //创建文件输出流

        FileWriter fw = null;

        BufferedWriter bw = null;

        try {

           fw = new FileWriter("d.txt");

           //创建高效缓冲区流的对象

           bw = new  BufferedWriter(fw);

           for (inti = 0; i < 10; i++) {

               //输出数据(写入10“java太好学了,真简单!”)

               bw.write("java太好学了,真简单!");

               //以前我们需要使用"\r\n"来换行

               //高效缓冲区给我们提供了newLine()方法来换行

               //相当于\r\n

               bw.newLine();

           }

           //清空缓冲区

           bw.flush();

          

        } catch (IOException e) {

           e.printStackTrace();

        }finally {

           if(bw != null) {

               try {

                   //关闭高效缓冲区的流就会自动关闭FileWriter

                   bw.close();

               } catch (IOException e) {

                   e.printStackTrace();

               }

           }

          

        }

       

    }

   

}

 

----------------------------------------------------

 

使用高效缓冲区输入流的扩展方法readLine()读取文档数据

 

readLine()方法可以读取一行数据。

 

public  class BufferedReaderDemo2 {

 

    public  static  void main(String[] args) {

       

        reader();

    }

   

    /**

     * 使用高效缓冲区readLine()方法来流读取文件中的内容。

     */

    public  static  void reader() {

        //创建文件输出流

        FileReader fr = null;

        BufferedReader br = null;

        try {

           fr = new FileReader("d.txt");

           //创建高效缓冲区流的对象

           br = new  BufferedReader(fr);

           //使用高效输入流可以读取一行数据,再次使用readLie()方法会读取到下一行的数据

           String line = br.readLine();

           System.out.println(line);

           //循环读取全部数据

           //当没有数据可以读取的时候会返回null

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

                   System.out.println(line);

          

        } catch (IOException e) {

           e.printStackTrace();

        }finally {

           if(br != null) {

               try {

                   //关闭高效缓冲区的流就会自动关闭FileWriter

                   br.close();

               } catch (IOException e) {

                   e.printStackTrace();

               }

           }      

        }       

    }

}

 

---------------------------------------------------------

范例:使用高效缓冲区流来复制文件

public  class CopyFile3 {

 

    public  static  void main(String[] args) {

       

        copy();

        System.out.println("done");

       

    }

   

    public  static  void copy() {

       

           //声明文件读取对象

           Reader reader = null;

           //声明高效缓冲区读取对象

           BufferedReader br = null;

           //声明文件输出对象

           FileWriter writer = null;

           //声明高效缓冲区输出对象

           BufferedWriter bw =null;

        try {

           //创建读取文件对象

           reader = new FileReader("src/com/rl/io/cha/reader/IOCharReaderDemo.java");

           //创建高效缓冲区读取文件对象

           br = new  BufferedReader(reader);

           //创建写入文件对象

           writer = new FileWriter("CopyIOCharWriterDemo.java");

           //创建高效缓冲区写入文件对象

           bw = new  BufferedWriter(writer);

           String line = null;

           //循环读取字符

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

               //向文件写入一行数据

               bw.write(line);

               //写入换行

               bw.newLine();

              

           }

           //释放缓冲区

           bw.flush();

        } catch (FileNotFoundException e) {

           e.printStackTrace();

        } catch (IOException e) {

           e.printStackTrace();

        } finally {

               try {

                   //关闭高效缓冲区的流对象时会自动关闭输入、输出流的对象

                   //释放资源,先关闭写,再关闭读取。

                   if(bw != null)

                       //关闭输出对象

                       bw.close();

                   if(br != null)

                       //关闭读取对象

                       br.close();

               } catch (IOException e) {

                   e.printStackTrace();

           }

          

        }

       

    }

   

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值