Java.io.BufferedInputStream class in Java Last Updated : 12 Sep, 2023 Comments Improve Suggest changes Like Article Like Report A BufferedInputStream adds functionality to another input stream-namely, the ability to buffer the input and to support the mark and reset methods. When the BufferedInputStream is created, an internal buffer array is created. As bytes from the stream are read or skipped, the internal buffer is refilled as necessary from the contained input stream, many bytes at a time. Constructor and Description BufferedInputStream(InputStream in) : Creates a BufferedInputStream and saves its argument, the input stream in, for later use. BufferedInputStream(InputStream in, int size) : Creates a BufferedInputStream with the specified buffer size, and saves its argument, the input stream in, for later use. Methods: int available() : Returns an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking by the next invocation of a method for this input stream. Syntax:public int available() throws IOException Returns: an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking. Throws: IOException void close() : Closes this input stream and releases any system resources associated with the stream. Syntax:public void close() throws IOException Overrides: close in class FilterInputStream Throws: IOException void mark(int readlimit) : Marks the current position in this input stream. Syntax:public void mark(int readlimit) Overrides: mark in class FilterInputStream Parameters: readlimit - the maximum limit of bytes that can be read before the mark position becomes invalid. boolean markSupported() : Tests if this input stream supports the mark and reset methods. Syntax:public boolean markSupported() Overrides: markSupported in class FilterInputStream Returns: a boolean indicating if this stream type supports the mark and reset methods. int read() : Reads the next byte of data from the input stream. Syntax:public int read() throws IOException Returns: the next byte of data, or -1 if the end of the stream is reached. Throws: IOException int read(byte[] b, int off, int len) : Reads bytes from this byte-input stream into the specified byte array, starting at the given offset. Syntax:public int read(byte[] b, int off, int len) throws IOException Parameters: b - destination buffer. off - offset at which to start storing bytes. len - maximum number of bytes to read. Returns: the number of bytes read, or -1 if the end of the stream has been reached. Throws: IOException void reset() : Repositions this stream to the position at the time the mark method was last called on this input stream. Syntax:public void reset() throws IOException Overrides: reset in class FilterInputStream Throws: IOException long skip(long n) :Skips over and discards n bytes of data from this input stream Syntax:public long skip(long n) throws IOException Parameters: n - the number of bytes to be skipped. Returns: the actual number of bytes skipped. Throws: IOException Program: Java // Java program to demonstrate working of BufferedInputStream import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.IOException; // Java program to demonstrate BufferedInputStream methods class BufferedInputStreamDemo { public static void main(String args[]) throws IOException { // attach the file to FileInputStream FileInputStream fin = new FileInputStream("file1.txt"); BufferedInputStream bin = new BufferedInputStream(fin); // illustrating available method System.out.println("Number of remaining bytes:" + bin.available()); // illustrating markSupported() and mark() method boolean b=bin.markSupported(); if (b) bin.mark(bin.available()); // illustrating skip method /*Original File content: * This is my first line * This is my second line*/ bin.skip(4); System.out.println("FileContents :"); // read characters from FileInputStream and // write them int ch; while ((ch=bin.read()) != -1) System.out.print((char)ch); // illustrating reset() method bin.reset(); while ((ch=bin.read()) != -1) System.out.print((char)ch); // close the file fin.close(); } } Output: Number of remaining bytes:47 FileContents : is my first line This is my second line This is my first line This is my second line Next Article: Java.io.BufferedOutputStream class in Java Comment More infoAdvertise with us Next Article Java.io.BufferedInputStream class in Java N Nishant Sharma Improve Article Tags : Java Java-I/O Java-BufferedInputStream Practice Tags : Java Similar Reads Java.io.ByteArrayInputStream class in Java ByteArrayInputStream class of java.io package contains all the buffers, containing bytes to be read from the Input Stream. There is no IO exception in case of ByteArrayInputStream class methods. Methods of this class can be called even after closing the Stream, there is no effect of it on the class 3 min read Java.io.ByteArrayOutputStream() Class in Java java.io.ByteArrayOutputStream class creates an Output Stream for writing data into byte array. The size of buffer grows automatically as data is written to it. There is no affect of closing the byteArrayOutputStream on the working of it's methods. They can be called even after closing the class. Thu 4 min read Java BufferedOutputStream Class BufferedOutputStream class in Java is a part of the java.io package. It improves the efficiency of writing data to an output stream by buffering the data. This reduces the number of direct writes to the underlying output stream, making the process faster and more efficient.Example 1: The below Java 2 min read Java.io.BufferedWriter class methods in Java Bufferreader class writes text to character-output stream, buffering characters.Thus, providing efficient writing of single array, character and strings. A buffer size needs to be specified, if not it takes Default value. An output is immediately set to the underlying character or byte stream by the 5 min read Java.io.FilterInputStream Class in Java Filter Streams filters data as they read and write data in the Input Stream, filters it and pass it on to the underlying Streams. Filter Streams are FilterInputStream FilterOutput Stream FilterInputStream : Java.io.FilterInputStream class works almost like InputStream class in Java but what it does 9 min read Java.io.DataOutputStream in Java A data output stream lets an application write primitive Java data types to an output stream in a portable way. An application can then use a data input stream to read the data back in. Let us do discuss the constructor of this class prior to moving ahead to the methods of this class. Constructor: 5 min read java.nio.Buffer Class in Java The Buffer class provides a buffer or a container for data chunks of specific primitive types. A finite sequence of elements is stored linearly in a buffer. Important properties of a buffer that make it convenient to perform read and write operations in the data are: Capacity: This property determin 4 min read Java.io.FilterOutputStream Class in Java java.io.FilterInputStream Class in Java Java.io.FilterOutputStream class is the superclass of all those classes which filters output streams. The write() method of FilterOutputStream Class filters the data and write it to the underlying stream, filtering which is done depending on the Streams. Decla 5 min read BufferedInputStream close() method in Java with Examples The close() method of BufferedInputStream class in Java closes the input stream and releases any system resources associated with it. Once the close() method is called, reading from any input file is banned and the system will throw an IOException. To tackle the issue, the user might use a try-catch 2 min read BufferedInputStream read() method in Java with Examples read() method of BufferedInputStream class in Java is used to read the next byte of data from the input stream. When this read() method is called on the input stream then this read() method reads one character of the input stream at a time. Syntax: public int read() Overrides: It overrides read() me 3 min read Like