Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ควรใช้เมธอด readNBytes () ของ InputStream ใน Java 9 เมื่อใด


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