Open In App

PushbackInputStream mark() method in Java with Examples

Last Updated : 16 Jun, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

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




// 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




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


Output:

HELLO

References: https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#mark(int)



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads