BufferedReader_字符缓冲输入流和练习_对文本的内容进行排序

BufferedReader_字符缓冲输入流

java.io.BufferedReader extends Reader

构造方法:

  BufferedReader(Reader in) 创建一个使用默认大小输入缓冲区的缓冲字符输入流。

  BufferedReader(Reader in, int sz) 创建一个使用指定大小输入缓冲区的缓冲字符输入流。

  参数:

    Reader in:字符输入流

      我们可以传递FileReader,缓冲流会给FileReader增加一个缓冲区,提高FileReader的读取效率

特有的成员方法:

  String readLine() 读取一个文本行。读取一行数据

    行的终止符号:通过下列字符之一即可认为某行已终止:换行('\n')、回车('\r') 或回车后直接跟着换行(\r\n).

  返回值:

    包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾, 则返回 null

    private static void show08() throws IOException {
        //创建字符缓冲输入流对象,构造方法中传递字符输入流
        BufferedReader reader = new BufferedReader(new FileReader("F:\\a9.txt"));
        //使用字符缓冲输入流对象中的方法read/readLine读取文本
        String len;
        while ((len=reader.readLine())!=null){
            System.out.println(len);
        }
        reader.close();
    }

练习_对文本的内容进行排序

    private static void show09() throws IOException {
        //创建一个HashMap集合对象, 可以:存储每行文本的序号(1,2,3,...); value :存储每行的文本
        HashMap<String,String> map = new HashMap<>();
        //创建字符缓冲输入流对象,构造方法中绑定字符输入流
        BufferedReader br = new BufferedReader(new FileReader("F:\\a9.txt"));
        //创建字符缓冲输出流对象,构造方法中绑定字符输出流
        BufferedWriter bw = new BufferedWriter(new FileWriter("F:\\a9.txt"));
        //使用字符缓冲输入流中的方法readline,逐行读取文本
        String line;
        while ((line = br.readLine())!=null){
            //对读取到的文本进行切割,获取行中的序号和文本内容
            String[] arr = line.split("\\.");
            //把切割好的序号和文本的内容存储到HashMap集合中(key序号是有序的,会自动排序1,2,3,4...)
            map.put(arr[0],arr[1]);
        }
        //遍历HashMap集合,获取每一个键值对
        for (String key : map.keySet()){
            String value = map.get(key);
            line = key+"."+value;
            bw.write(line);
            bw.newLine();
        }
        bw.close();
        br.close();
    }

排序好的:

 

posted @ 2022-07-14 14:17  魔光领域  阅读(49)  评论(0编辑  收藏  举报