The Java BufferedInputStream class is utilized for reading data from a stream efficiently by employing a buffer mechanism to enhance performance.
Key aspects of BufferedInputStream include:
- The internal buffer is replenished from the underlying input stream in batches when bytes are read or skipped.
- Upon instantiation of a BufferedInputStream, an internal buffer array is established.
Java BufferedInputStream class declaration
Let's examine the declaration of the Java.io.BufferedInputStream class:
Example
public class BufferedInputStream extends FilterInputStream
Java BufferedInputStream class constructors
| Constructor | Description |
|---|---|
| BufferedInputStream(InputStream IS) | It creates the BufferedInputStream and saves it argument, the input stream IS, for later use. |
| BufferedInputStream(InputStream IS, int size) | It creates the BufferedInputStream with a specified buffer size and saves it argument, the input stream IS, for later use. |
Java BufferedInputStream class methods
| Method | Description |
|---|---|
| int available() | It returns an estimate number of bytes that can be read from the input stream without blocking by the next invocation method for the input stream. |
| int read() | It read the next byte of data from the input stream. |
| int read(byte[] b, int off, int ln) | It read the bytes from the specified byte-input stream into a specified byte array, starting with the given offset. |
| void close() | It closes the input stream and releases any of the system resources associated with the stream. |
| void reset() | It repositions the stream at a position the mark method was last called on this input stream. |
| void mark(int readlimit) | It sees the general contract of the mark method for the input stream. |
| long skip(long x) | It skips over and discards x bytes of data from the input stream. |
| boolean markSupported() | It tests for the input stream to support the mark and reset methods. |
Example of Java BufferedInputStream
Let's explore a straightforward example for reading file data utilizing BufferedInputStream:
Example
package com.example;
import java.io.*;
public class BufferedInputStreamExample{
public static void main(String args[]){
try{
FileInputStream fin=new FileInputStream("D:\\testout.txt");
BufferedInputStream bin=new BufferedInputStream(fin);
int i;
while((i=bin.read())!=-1){
System.out.print((char)i);
}
bin.close();
fin.close();
}catch(Exception e){System.out.println(e);}
}
}
In this scenario, it is assumed that the data is available in the file named "testout.txt":
Example
Java
Output:
Output
Java