Java 缓冲流

  • 运行环境:

  JDK8 + IntelliJ IDEA 2018.3 


  • 缓冲流

  • 1.1 概述

  缓冲流,也叫高效流,是对4个基本的FileXxx 流的增强,所以也是4个流,按照数据类型分类:

      • 字节缓冲流BufferedInputStreamBufferedOutputStream

      • 字符缓冲流BufferedReaderBufferedWriter

    缓冲流的基本原理,是在创建流对象时,会创建一个内置的默认大小的缓冲区数组,通过缓冲区读写,减少系统IO次数,从而提高读写的效率。
  • 1.2 字节缓冲流

    构造方法

// 创建字节缓冲输入流
BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt"));
// 创建字节缓冲输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bos.txt"));

 

  1.3 字符缓冲流

    构造方法:

// 创建字符缓冲输入流
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
// 创建字符缓冲输出流
BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));

  • 源码:

    public class BufferedTest {
        public static void main(String[] args) throws IOException {
            // 创建map集合,保存文本数据,键为序号,值为文字
            HashMap<String, String> lineMap = new HashMap<>();
    
            // 创建流对象
            BufferedReader br = new BufferedReader(new FileReader("in.txt"));
            BufferedWriter bw = new BufferedWriter(new FileWriter("out.txt"));
    
            // 读取数据
            String line  = null;
            while ((line = br.readLine())!=null) {
                // 解析文本
                String[] split = line.split("\.");
                // 保存到集合
                lineMap.put(split[0],split[1]);
            }
            // 释放资源
            br.close();
    
            // 遍历map集合
            for (int i = 1; i <= lineMap.size(); i++) {
                String key = String.valueOf(i);
                // 获取map中文本
                String value = lineMap.get(key);
                  // 写出拼接文本
                bw.write(key+"."+value);
                  // 写出换行
                bw.newLine();
            }
            // 释放资源
            bw.close();
        }
    }
原文地址:https://www.cnblogs.com/CjtBlog/p/13616108.html