1. 程式人生 > 實用技巧 >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(); } }