Since Java 9, thereadNBytes()method can be added to theInputStreamclass. This method reads the requested number of bytes from an input stream into the givenbyte array. This method blocks untillen bytesof input data have read, end of a stream is detected, or an exception is thrown. ThereadNBytes()method doesn't close an input stream. This method can be useful to avoidmemoryproblemswith large files.
public int readNBytes(byte[] b, int off, int len) throws IOException
In the example below, we have created a file named "Technology.txt" in the source folder, It contains simple data:{ "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",
The above is the detailed content of When to use InputStream's readNBytes() method in Java 9?. For more information, please follow other related articles on the PHP Chinese website!