BufferedInputStream位元組緩衝輸入流
阿新 • • 發佈:2020-11-24
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(); } }