zoukankan      html  css  js  c++  java
  • 处理流之缓冲流 buffered

    处理流是包在别的流上面的流,相当于包在别的管道上面的管道。(节点流是直接怼在数据源上的流)

    缓冲流:缓冲流相当于自带小桶,对读写数据提供了缓冲的功能,提高了读写的效率,同时增加了一些新的方法。BufferedReader提供了一个一次读取一行的方法 readLine(),BufferedWriter提供了写入一个行分隔符的方法 newLine()

    BufferedReader(Reader in) (Reader in ,int size)

    BufferedWriter(Writer out) (Writer out,int size)

    BufferedInputStream(InputStream in)  (InputStream in,int size)

    BufferedOutputStream(OutputStream out) (OutputStream out,int size)

    操作实例:

    import java.io.*;
    
    public class Test {
        public static void main(String[] args) {
            //写入100个数对应的字符
            try {
                BufferedWriter bwout = new BufferedWriter(new FileWriter("e:\java\aaa.txt"));
                int sum = 0;    
                for(int i = 32;i <= 99;i++) {
                    //bwout.write("(" + Integer.toString(i) + ")");
                    bwout.write(i);//实际上写进去的是一个个字符
                    //bwout.write("   ");//32是一个空格符
                    sum++;
                    if (sum == 10) {
                        bwout.newLine();//BufferedWriter的newLine()方法    
                        sum = 0;    
                    }
                }
                bwout.flush();//要flush一次才能将缓冲区输出
                bwout.close();
                //读取每一行并打印在屏幕上
                BufferedReader bread = new BufferedReader(new FileReader("e:\java\aaa.txt"));
                System.out.println(bread.read());
                bread.mark(500);//为什么mark(2)与mark(5)mark(5)运行效果是一样的?里面填的数值没有影响?
                for (int j = 0;j <= 4;j++) {
                    System.out.print(bread.read() + " ");    
                }
                System.out.println(" ");
                bread.reset();
                for (int j = 0;j <= 4;j++) {
                    System.out.print(bread.read() + " ");    
                }
                System.out.println(" ");
                System.out.println(bread.readLine());//从当前位置开始读到此句尾
                System.out.println(bread.readLine());//一行一行的读数据,从当前位置开始读到此句尾
                bread.close();
            }catch(IOException e){
                e.printStackTrace();    
            }
        }    
    }

    r1

    r2

  • 相关阅读:
    python安装教程
    protobuf安装教程
    PlantUML安装教程
    题解-CF1140E Palindrome-less Arrays
    FST
    线段树
    题解-CF677D Vanya and Treasure
    最短路
    后缀自动机
    虚树
  • 原文地址:https://www.cnblogs.com/yhwsy/p/5766652.html
Copyright © 2011-2022 走看看