Computer >> Máy Tính >  >> Lập trình >> Java

Khi nào sử dụng phương thức readAllBytes () của InputStream trong Java 9?

Kể từ Java 9, chúng tôi có thể sử dụng readAllBytes () phương thức từ InputStream lớp để đọc tất cả các byte thành một mảng byte. Phương thức này đọc tất cả các byte từ một đối tượng InputStream cùng một lúc và chặn cho đến khi tất cả các byte còn lại được đọc và kết thúc luồng được phát hiện hoặc một ngoại lệ được đưa ra.

reallAllBytes () phương thức không thể tự động đóng InputStream ví dụ. Khi nó có thể đến cuối luồng, các lệnh gọi thêm của phương thức này có thể trả về mảng byte trống. Chúng tôi có thể sử dụng phương pháp này cho các trường hợp sử dụng đơn giản trong đó thuận tiện để đọc tất cả các byte vào một mảng byte và không nhằm mục đích đọc các luồng đầu vào với một lượng lớn dữ liệu.

Cú pháp

public byte[] readAllBytes() throws IOException

Trong ví dụ dưới đây, chúng tôi đã tạo một "Technology.txt " tệp trong "C:\ Temp " thư mục có dữ liệu đơn giản: {"JAVA", "PYTHON", "JAVASCRIPT", "SELENIUM", "SCALA"}.

Ví dụ

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();
      }
   }
}

Đầu ra

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