1. 程式人生 > 實用技巧 >BufferedInputStream位元組緩衝輸入流

BufferedInputStream位元組緩衝輸入流

package com.chunzhi.Test01BufferedStream;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;

/*
    java.io.BufferedInputStream extends InputStream
    BufferedInputStream:位元組緩衝輸入流

    繼承父類的成員方法:
        int read():從輸入流中讀取資料的下一個位元組
        int read(byte[] b):從輸入流中讀取一定數量的位元組,並將其儲存在緩衝區陣列b中
        void close():關閉此輸入流並釋放與該流關聯的所有系統資源
    構造方法:
        BufferedInputStream(InputStream in):建立一個BufferedInputStream並儲存其引數,即輸入流in,以便將來使用。
        BufferedInputStream(InputStream in, int size):建立具有指定緩衝區大小的BufferedInputStream並儲存其引數,即輸入流 in,以便將來使用。
        引數:
            InputStream in:位元組輸入流
                我們可以傳遞FileInputStream,緩衝流會給FileInputSteam增加一個緩衝區,提高FileInputStream的讀寫效率
            int size:指定緩衝流內部緩衝區的大小,不指定,使用預設
    使用步驟(重點):
        1.建立FileInputStream物件,構造方法中繫結要讀取的資料來源
        2.建立BufferedInputStream物件,構造方法中傳遞FileInputStream物件,提高FileInputStream物件的讀取效率
        3.使用BufferedInputStream物件中的方法read,讀取檔案
        4.釋放資源
 
*/ public class Test02BufferedInputStream { public static void main(String[] args) throws IOException { // 1.建立FileInputStream物件,構造方法中繫結要讀取的資料來源 FileInputStream fis = new FileInputStream("Day10_IO\\a.txt"); // 2.建立BufferedInputStream物件,構造方法中傳遞FileInputStream物件,提高FileInputStream物件的讀取效率
BufferedInputStream bis = new BufferedInputStream(fis); /* // 3.使用BufferedInputStream物件中的方法read,讀取檔案 // 單個位元組讀取 int len = 0; // 記錄每次讀取到的位元組 while ((len = bis.read()) != -1) { System.out.println((char)len); } */ //
int read(byte[] b)從輸出流中讀取一定數量的位元組,並將其儲存在緩衝區陣列b中。 // 利用陣列多個位元組讀取 byte[] bytes = new byte[1024]; // 儲存每次讀取的資料 int len = 0; // 記錄每次讀取的有效位元組個數 while ((len = bis.read(bytes)) != -1) { System.out.print(new String(bytes, 6,10)); } // 4.釋放資源 fis.close(); } }