InputStream (字節流讀取)


InputStream (字節流讀取)

java.io.InputStream InputStream是一個抽象類. 字節流可以操作任何類型的2進制文件

InputStream常用實現類的繼承關系

  • java.lang.Object
    • java.io.InputStream
      • java.io.FileInputStream
        • java.io.BufferedInputStream

常用子類就是FileInputStream 和 BufferedInputStream

InputStream共性方法 (子類通用)

返回值和修飾符 方法 說明
void close() 關閉此輸入流並釋放與該流關聯的所有系統資源。
(推薦在finally中關閉)
abstract int read() 從輸入流中讀取數據的下一個字節。
int read(byte[] b) 從輸入流中讀取一定數量的字節,
並將其存儲在緩沖區數組 b 中。
int read(byte[] b, int off, int len) 將輸入流中最多 len 個數據字節讀入 byte 數組。

FileInputStream子類

(普通流)作為子類,我們可以學習他的創建對象的方式,而方法都是從父類繼承來的。一個一個讀取

構造方法

構造方法 說明
FileInputStream( String name ) 傳入一個文件路徑
FileInputStream( File file ) 傳入一個FIle對象

讀取文件示例:

main方法中代碼

try {
    // 1. 創建對象 -- 參數是文件路徑
    String path = "D:\\DEV\\eclipse\\workspace\\day13\\testIO.txt";
    InputStream in = new FileInputStream(path);
    // 第二種方式創建對象 -- 參數是一個File對象
    // InputStream in = new FileInputStream(new File(path));
    // 2. 開始讀取	
    int b = -2;
    while ((b = in.read()) != -1) {
        System.out.println(b);
    }
    // 釋放資源
    in.close();
} catch (IOException e) {
    e.printStackTrace();
}

BufferedInputStream子類

BufferedInputStream(也稱為 緩沖流) 為另一個輸入流添加一些功能,創建一個內部緩沖區數組。(高效), 按塊讀取, 默認緩沖區大小: 8192(8KB), 這個緩沖區默認最合適, 一般不需要修改

構造器

第二種不常用, 默認緩沖區大小性能已經很好了, 一般不修改

構造器 說明
BufferedInputStream( InputStream in ) 一般 傳入一個FileInputStream
BufferedInputStream( InputStream in, int size ) size是指定緩存區大小,(一般不用)系統默認是8192(8KB)

讀取文件實例:

main方法中代碼

try {
    // 1. 創建對象
    String path = "D:\\DEV\\eclipse\\workspace\\day13\\testIO.txt";
    InputStream in = new BufferedInputStream(new FileInputStream(path));
    // 2. 開始讀取
    int b = 0;
    while ((b = in.read()) != -1) {
        System.out.println(b);
    }
    // 3. 釋放資源
    in.close();
} catch (IOException e) {
    e.printStackTrace();
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM