The mark() method of PushbackInputStream class in Java is used to mark the current position in the input stream. This method does nothing for PushbackInputStream.
Syntax:
public void mark(int readlimit)
Overrides: This method overrides the mark() method of FilterInputStream class.
Parameters: This method accepts single parameter readlimit that represents the maximum limit of bytes that can be read before the mark position becomes invalid.
Return value: This method does not return any value.
Exceptions: This method does not throw any exception.
Below programs illustrate mark() method of PushbackInputStream class in IO package:
Program 1:
// Java program to illustrate // PushbackInputStream mark() method import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
// Create an array
byte [] byteArray
= new byte [] { 'G' , 'E' , 'E' ,
'K' , 'S' };
// Create inputStream
InputStream inputStr
= new ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
for ( int i = 0 ; i < byteArray.length; i++) {
// Read the character
System.out.print(
( char )pushbackInputStr.read());
}
// Revoke mark() but it does nothing
pushbackInputStr.mark( 5 );
}
} |
GEEKS
Program 2:
// Java program to illustrate // PushbackInputStream mark() method import java.io.*;
public class GFG {
public static void main(String[] args)
throws IOException
{
// Create an array
byte [] byteArray
= new byte [] { 'H' , 'E' , 'L' ,
'L' , 'O' };
// Create inputStream
InputStream inputStr
= new ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
// Revoke mark()
pushbackInputStr.mark( 1 );
for ( int i = 0 ; i < byteArray.length; i++) {
// Read the character
System.out.print(
( char )pushbackInputStr.read());
}
}
} |
HELLO
References: https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#mark(int)