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


從 Java 9 開始,可以使用 InputStream 類的 readAllBytes() 方法將所有位元組讀入位元組陣列。此方法一次從 InputStream 物件讀取所有位元組,並且在讀取完所有剩餘位元組以及檢測到流結尾之前一直處於阻塞狀態,或者引發異常。

reallAllBytes() 方法無法自動關閉 InputStream 例項。當它達到流結尾時,此方法的進一步呼叫可能會返回一個 空位元組陣列。 對於將所有位元組讀入位元組陣列的方便情況,我們可以使用此方法,而不適用於讀取具有大量資料輸入流。

語法

public byte[] readAllBytes() throws IOException

在以下示例中,我們在“C:\Temp ”資料夾中建立了一個“Technology.txt ”檔案,其中包含簡單資料:{“JAVA”, “PYTHON”, “JAVASCRIPT”, “SELENIUM”, “SCALA”}。

示例

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

public class ReadAllBytesMethodTest {
   public static void main(String args[]) {
      try(InputStream stream = Files.newInputStream(Paths.get("C://Temp//Technology.txt"))) {
         // Convert stream to string
         String contents = new String(stream.readAllBytes(), StandardCharsets.UTF_8);

         // To print the string content
         System.out.println(contents);
      } catch(IOException ioe) {
         ioe.printStackTrace();
      }
   }
}

輸出

"JAVA", "PYTHON", "JAVASCRIPT", "SELENIUM", "SCALA"

更新於:28-2 月-2020

8K+ 檢視次數

開啟你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.