IO流字符流-缓冲区

字符流的缓冲区

 1:缓冲区的出现提高了对数据的读写效率。

  2:对应类
        (1):BufferedWriter
        (2):BufferedReader
  3:缓冲区要结合流才可以使用

  4:在流的基础上对流的功能进行了增强
    //BufferedWriter的特有方法 newLine();//换行
public class Io12_1 {
        private static final String LINE_SEPERATOR = System.getProperty("line.separator");



        public static void main(String[] args) throws IOException {
            FileWriter fw=new FileWriter("E:\\Io\\io2.txt");
            //为了提高写入的效率,使用了字符流的缓冲区。
            //创建了一个字符写入流的缓冲区对象,并和指定要被缓冲的流对象相关联
            BufferedWriter bufw=new BufferedWriter(fw);

            //fw.write("ancscs");

            //使用缓冲区的写入方法将数据写入到缓冲区中
//          bufw.write("abcde"+LINE_SEPERATOR+"hahahahaha");
            bufw.write("aaaa");
            bufw.newLine();//换行
            bufw.write("vvvv");

            //使用缓冲区的刷新方法将数据刷到目的地中
            bufw.flush();
            //关闭缓冲区,其实就是关闭的就是缓冲区的流对象
            bufw.close();

        }
}

字符流-缓冲区-BufferedReader

    //BufferedReader的特有方法readLine();
public class Io13_1 {
        public static void show() throws IOException{
            FileReader fr=new FileReader("E:\\Io\\io2.txt");
            int len=0;
                while((len=fr.read())!=-1){
                        System.out.println((char)len);
                }

        }
        public static void show2() throws IOException {
            FileReader fr=new FileReader("E:\\Io\\io2.txt");
            char[]  buf=new char[1024];
            int len=0;
            while((len=fr.read(buf))!=-1){
                System.out.println(new String(buf,0,len));
            }
        }
        public static void main(String[] args) throws IOException {
            FileReader  fr=new FileReader("E:\\Io\\io.txt");  
            BufferedReader  bufr=new BufferedReader(fr);

/*          String line1=bufr.readLine();
            System.out.println(line1);
            String line2=bufr.readLine();
            System.out.println(line2);      //  没有该行就使用null来表示
            String line3=bufr.readLine();
            System.out.println(line3);
            String line4=bufr.readLine();
            System.out.println(line4);*/

            String line=null;
            while((line=bufr.readLine())!=null){
                System.out.println(line);
            }
        }
}

字符流-缓冲区-复制文本文件

    public class Io15_1 {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("E:\\Io\\io.txt");
        BufferedReader bufr=new BufferedReader(fr);

        FileWriter fw=new FileWriter("E:\\Io\\iobuffer.txt");
        BufferedWriter bufw=new BufferedWriter(fw);

        String line=null;
        while((line=bufr.readLine())!=null){

             bufw.write(line);
             bufw.newLine();
             bufw.flush();
        }

    /*  int ch=0;
        while((ch=bufr.read())!=-1){
            bufw.write(ch);
        }*/

        bufr.close();
        bufw.close();

    }
}

LineNumberReader

    public class Io20_1 {
    public static void main(String[] args) throws IOException {
        FileReader fr=new FileReader("E:\\Io\\io.txt");
        LineNumberReader lnr=new LineNumberReader(fr);//可以产生行号
        String  line=null;
        lnr.setLineNumber(100);  //设置行号是多少开始

        while((line=lnr.readLine())!=null){
            System.out.println(lnr.getLineNumber()+":"+line);  //101:abcde
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值