PushbackInputStream read() method in Java with Examples
The read() method of PushbackInputStream class in Java is of two types:
- The read() method of PushbackInputStream class in Java is used to read the next byte of data from the input stream. This method returns the read byte from the input stream in the form of an integer.
Syntax:
public int read()
throws IOException
Overrides: This method overrides the read() method of FilterInputStream class.
Parameters: This method does not accept any parameter.
Return value: This method returns the next byte of the stream. It returns -1 if the stream is ended.
Exceptions: This method throws IOException if the input stream is closed by calling the close() method of the same class or an I/O error occurs.
Below programs illustrate read() method of PushbackInputStream class in IO package:
Program 1:
import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
byte [] byteArray
= new byte [] { 'G' , 'E' , 'E' ,
'K' , 'S' };
InputStream inputStr
= new ByteArrayInputStream(byteArray);
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
for ( int i = 0 ; i < byteArray.length; i++) {
System.out.println(
"Char : "
+ ( char )pushbackInputStr.read());
}
}
}
|
Output:
Char : G
Char : E
Char : E
Char : K
Char : S
Program 2:
import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
byte [] byteArray
= new byte [] { 'G' , 'E' , 'E' , 'K' , 'S' ,
'F' , 'O' , 'R' , 'G' , 'E' ,
'E' , 'K' , 'S' };
InputStream inputStr
= new ByteArrayInputStream(byteArray);
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
for ( int i = 0 ; i < byteArray.length; i++) {
System.out.println(
"Char : "
+ ( char )pushbackInputStr.read());
}
}
}
|
Output:
Char : G
Char : E
Char : E
Char : K
Char : S
Char : F
Char : O
Char : R
Char : G
Char : E
Char : E
Char : K
Char : S
- The read(byte[], int, int) method of PushbackInputStream class in Java is used to reads up to given bytes of data from the input stream into an array of bytes. This method does not read one character at a time, it reads several characters at one time.
Syntax:
public int read(byte[] b,
int offset,
int length)
throws IOException
Overrides: This method overrides the read() method of FilterInputStream class.
Parameters: This method does not accept three parameters:
- b – It represents the byte array into which data is read.
- offset – It represents the starting index in the array.
- length – It represents the number of byte to be read.
Return value: This method returns the total number of bytes read. It returns -1 if the stream is ended.
Exceptions:
- NullPointerException – This method throws NullPointerException if byte array is null.
- IndexOutOfBoundsException – This method throws IndexOutOfBoundsException if offset is negative or length is negative or length is greater than the difference of length of array and offset.
- IOException – This method throws IOException if the input stream is closed by calling the close() method of the same class or an I/O error occurs.
Below programs illustrate read(byte[], int, int) method of PushbackInputStream class in IO package:
Program 1:
import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
byte [] b = new byte [ 1024 ];
byte [] byteArray
= new byte [] { 'G' , 'E' , 'E' ,
'K' , 'S' };
InputStream inputStr
= new ByteArrayInputStream(byteArray);
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
pushbackInputStr.read(b, 0 , 4 );
for ( int i = 0 ; i < 4 ; i++) {
System.out.print(( char )b[i]);
}
}
}
|
Program 2:
import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
byte [] b = new byte [ 1024 ];
byte [] byteArray
= new byte [] { 'G' , 'E' , 'E' , 'K' , 'S' ,
'F' , 'O' , 'R' , 'G' , 'E' ,
'E' , 'K' , 'S' };
InputStream inputStr
= new ByteArrayInputStream(byteArray);
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
pushbackInputStr.read(b, 8 , 5 );
for ( int i = 8 ; i < 13 ; i++) {
System.out.print(( char )b[i]);
}
}
}
|
References:
1. https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#read()
2. https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#read(byte%5B%5D, int, int)
Last Updated :
05 Jun, 2020
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...