如何使用FileInputStream讀取檔案資料?


FileInputStream類從特定檔案讀取資料(逐位元組)。它通常用於讀取包含原始位元組的檔案內容,例如影像。

要使用此類讀取檔案內容:

  • 首先,需要透過傳遞一個String變數或一個**File**物件來例項化此類,該物件表示要讀取檔案的路徑。
FileInputStream inputStream = new FileInputStream("file_path");
or,
File file = new File("file_path");
FileInputStream inputStream = new FileInputStream(file);
  • 然後使用**read()**方法的任何變體讀取指定檔案的內容:
    • **int read()** - 這只是從當前InputStream讀取資料並逐位元組返回讀取的資料(以整數格式)。

      如果達到檔案末尾,此方法返回-1。

    • **int read(byte[] b)** - 此方法接受一個位元組陣列作為引數,並將當前InputStream的內容讀取到給定的陣列中。

      此方法返回一個整數,表示位元組總數,如果達到檔案末尾則返回-1。

    • **int read(byte[] b, int off, int len)** - 此方法接受一個位元組陣列、其偏移量(int)和長度(int)作為引數,並將當前InputStream的內容讀取到給定的陣列中。
    • 此方法返回一個整數,表示位元組總數,如果達到檔案末尾則返回-1。

示例

假設我們在**D:/images**目錄下有以下影像

下面的程式使用**FileInputStream**讀取上述影像的內容。

示例

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamExample {
   public static void main(String args[]) throws IOException {
      //Creating a File object
      File file = new File("D:/images/javafx.jpg");
      //Creating a FileInputStream object
      FileInputStream inputStream = new FileInputStream(file);
      //Creating a byte array
      byte bytes[] = new byte[(int) file.length()];
      //Reading data into the byte array
      int numOfBytes = inputStream.read(bytes);
      System.out.println("Data copied successfully...");
   }
}

輸出

Data copied successfully...

更新於:2019年8月1日

3K+ 瀏覽量

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.