什么时候在Java 9中使用InputStream的readNBytes()方法?
从Java9开始,可以将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",