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);
}
}
Output:
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());
}
}
}