zoukankan      html  css  js  c++  java
  • IO字符流之读写缓冲区(BufferedWriter、BufferedReader)

    缓冲区是为了提高效率所使用的,在使用缓冲区之前必须先明确流对象。就如同拿杯子接水一样,必须先知道这个杯子放在哪里接水

    BufferedWriterDemo(输入字符流缓冲区演示):

    import java.io.*;
    /*
    缓冲区的出现是为了提高流的操作效率而出现的。
    
    所以在创建缓冲区之前,必须要先有流对象。
    
    该缓冲区对象中提供了一个跨平台的换行符。
    newLine();
    
    */
    class BufferedWriterDemo
    {
        public static void main(String[] args) 
        {
            //定义一个流对象。
            FileWriter fw = null;
            //为了提高字符写入流效率。加入了缓冲技术。
            BufferedWriter bufw = null;
            try
            {
                fw = new FileWriter("E:\BufferedWriterDemo.txt");
                bufw = new BufferedWriter(fw);//只要将需要被提高效率的流对象作为参数传递给缓冲区的构造函数即可。
                bufw.write("fsafsfasfd");
            }
            catch (IOException e)
            {
                System.out.println(e.toString());
            }
            finally
            {
                try
                {
                    if (fw!=null)
                    {
                        bufw.close();
                    }
                }
                catch (IOException e)
                {
                }
            }
        }
    }
    BufferWriterDemo

    BufferedReaderDemo(读取字符流缓冲区演示):

    /*
    字符读取流缓冲区:
    该缓冲区提供了一个一次读一行的方法 readLine,方便于对文本数据的获取。
    当返回null时,表示读到文件末尾。
    
    readLine方法返回的时候只返回回车符之前的数据内容。并不返回回车符。
    */
    
    import java.io.*;
    class BufferedReaderDemo 
    {
        public static void main(String[] args) 
        {
            //先创建字符读取流对象
            FileReader fr = null;
            //字符读取流对象缓冲区。
            BufferedReader bufr = null;
    
            try
            {
                fr = new FileReader("E:\BufferedWriterDemo.txt");
                bufr = new BufferedReader(fr);//为了提高效率。加入缓冲技术。将字符读取流对象作为参数传递给缓冲对象的构造函数。
                String result = null;
                while ((result=bufr.readLine())!=null)
                {
                    System.out.println(result);
                }
            }
            catch (IOException e)
            {
                System.out.println(e.toString());
            }
            finally
            {
                try
                {
                    if (fr!=null)
                    {
                        bufr.close();//读取字符流缓冲对象可直接关闭资源,因其继承流了对象Reader的关闭资源方法
                    }
                }
                catch (IOException e)
                {
                }
                
            }
        }
    }
    BufferedReaderDemo

    使用缓存器复制文件演示:

    import java.io.*;
    class userBufferedCopyFileDemo
    {
        public static void main(String[] args) 
        {
            //创建读取和写入文件字符流对象
            FileReader fr = null;
            FileWriter fw = null;
            //创建读写字符流对象的缓冲区
            BufferedReader bufr = null;
            BufferedWriter bufw = null;
            //定义字符数组与计数器用于保存读取的数据信息
    //        char [] array = new char[1024];
    //        int len = 0;
    
            try
            {
                fr = new FileReader("E:\BufferedWriterDemo.txt");
                fw = new FileWriter("E:\userBufferCopyFileDemo.txt");
                bufr = new BufferedReader(fr);
                bufw = new BufferedWriter(fw);
                //读取进数组的方式
    //            while ((len=bufr.read(array))!=-1)
    //            {
    //                bufw.write(array,0,len);
    //            }
                //一行一行读取
                String line = null;
                while((line=bufr.readLine())!=null)
                {
                    bufw.write(line);
                    bufw.newLine();//输出一个换行符。
                    bufw.flush();//为避免例如停电等情况每写完一行就将流刷新一次。
    
                }
            }
            catch (IOException e)
            {
                System.out.println(e.toString());
            }
            finally
            {
                try
                {
                    if (fr!=null)
                    {
                        bufr.close();
                    }
                }
                catch (IOException e)
                {
                }
                try
                {
                    if (fw!=null)
                    {
                        bufw.close();
                    }
                }
                catch (IOException e)
                {
                }
            }
        }
    }
    userBufferedCopyFileDemo
  • 相关阅读:
    UIViewcontroller生命周期方法
    runtime中的宏定义解释表
    opencv在Mac环境下的安装和配置
    Oracle导入导出
    Oracle触发器详解
    查找表的父表和子表
    Oracle创建表空间
    TRIGGER控制级联更新
    启动Oracle的bat文件
    PL(SQL)块
  • 原文地址:https://www.cnblogs.com/gzc911/p/4915235.html
Copyright © 2011-2022 走看看