ตั้งแต่ Java 9 เราสามารถใช้ readAllBytes() วิธีการจาก InputStream คลาสเพื่ออ่านไบต์ทั้งหมดลงในอาร์เรย์ไบต์ เมธอดนี้อ่านไบต์ทั้งหมดจาก อ็อบเจ็กต์ InputStream พร้อมกันและบล็อกจนกว่าไบต์ที่เหลือทั้งหมดจะอ่านและตรวจพบจุดสิ้นสุดของสตรีม หรือมีข้อยกเว้นเกิดขึ้น
reallAllBytes() เมธอดไม่สามารถปิด InputStream . ได้โดยอัตโนมัติ ตัวอย่าง. เมื่อถึงจุดสิ้นสุดของสตรีม การเรียกใช้เมธอดเพิ่มเติมสามารถส่งคืนอาร์เรย์ไบต์ว่าง เราสามารถใช้วิธีนี้สำหรับกรณีการใช้งานทั่วไปซึ่งสะดวกที่จะอ่านไบต์ทั้งหมดลงในอาร์เรย์ไบต์ และไม่ได้มีไว้สำหรับอ่านสตรีมอินพุตที่มีข้อมูลจำนวนมาก
ไวยากรณ์
public byte[] readAllBytes() throws IOException
ในตัวอย่างด้านล่าง เราได้สร้าง "Technology.txt" ไฟล์ใน "C:\Temp" โฟลเดอร์ที่มีข้อมูลอย่างง่าย:{ "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"