何時在 Java 9 中使用 InputStream 的 readNBytes() 方法?


從 Java 9 開始,readNBytes() 方法可以新增到 InputStream 類中。此方法將請求的位元組數從輸入流讀入給定的位元組陣列中。此方法會一直阻塞,直到讀取了len 位元組的輸入資料、檢測到流結束或丟擲了異常為止。readNBytes() 方法不會關閉輸入流。此方法對於避免處理大型檔案的記憶體問題非常有用。

語法

public int readNBytes(byte[] b, int off, int len) throws IOException


在下例中,我們在原始檔夾中建立了一個 "Technology.txt" 檔案,其中包含簡單資料:{ "JAVA", "PYTHON", "JAVASCRIPT", "SELENIUM", "SCALA"}.

示例

import java.io.*;
import java.util.stream.*;
import java.nio.*;
import java.nio.file.*;

public class InputStreamReadNByteMethodTest {
   InputStream inputStream = nputStreamReadNByteMethodTest.class.getResourceAsStream("Technology.txt");

   public void testReadNBytes() throws Exception {
      final byte[] data = new byte[10];
      inputStream.readNBytes(data, 0, 7);
      System.out.println(new String(data));
   }
   public static void main(String args[]) throws Exception {
      InputStreamReadNByteMethodTest t = new InputStreamReadNByteMethodTest();
      t.testReadNBytes();  
   }
}

輸出

"JAVA",

更新於: 03-Mar-2020

1K+ 檢視

開啟你的 職業生涯

完成課程以獲得認證

開始學習
廣告