zoukankan      html  css  js  c++  java
  • 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();
          }
      }
  • 相关阅读:
    StarUML3.x的破解方法
    图解git基本使用
    Elasticsearch分页查询From&Size vs scroll vs search_after
    MySQL索引及使用详解
    mysql中key 、primary key 、unique key 与index区别
    MySQL避免重复插入记录方法(ignore,Replace,ON DUPLICATE KEY UPDATE)
    git config配置快捷命令
    linux基础命令使用详解
    MySQL索引详解——full-text,b-tree,hash,r-tree
    Insert Interval 面试题leetcode.
  • 原文地址:https://www.cnblogs.com/CjtBlog/p/13616108.html
Copyright © 2011-2022 走看看