ตั้งแต่ 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"