PushbackReader skip(long) in Java

skip(long): This method is available in the java.io.PushbackReader class of Java.

Syntax:

long java.io.PushbackReader.skip(long n) throws IOException

This method takes one argument. This method skips characters. This method will block until some characters are available, an I/O error occurs, or the end of the stream is reached.

Parameters: One parameter is required for this method.

n: The number of characters to skip.

Returns: The number of characters actually skipped.

Throws:

1. IllegalArgumentException - If n is negative.

2. IOException - If an I/O error occurs

Approach 1: When no exception

Java

import java.io.IOException;
import java.io.PushbackReader;
import java.io.Reader;
import java.io.StringReader;

public class PushbackReaderskip {
    public static void main(String[] args) throws IOException {

        Reader in = new StringReader("HELLO");
        PushbackReader pushbackReader = new PushbackReader(in);

        long n = 100L;

        System.out.println(pushbackReader.skip(n));
        pushbackReader.close();
    }
}

Output:

5


Approach 2: IllegalArgumentException 

Java

package com.PushbackReader;

import java.io.IOException;
import java.io.PushbackReader;
import java.io.Reader;
import java.io.StringReader;

public class PushbackReaderskip {
    public static void main(String[] args) throws IOException {

        Reader in = new StringReader("HELLO");
        PushbackReader pushbackReader = new PushbackReader(in);

        long n = -1;

        System.out.println(pushbackReader.skip(n));
        pushbackReader.close();
    }
}

Output:

Exception in thread "main" java.lang.IllegalArgumentException: skip value is negative at java.base/java.io.PushbackReader.skip(PushbackReader.java:269) at com.PushbackReader.PushbackReaderskip.main(PushbackReaderskip.java:16)


Approach 3: IOException

Java

package com.PushbackReader;

import java.io.IOException;
import java.io.PipedReader;
import java.io.PushbackReader;
import java.io.Reader;

public class PushbackReaderskip {
    public static void main(String[] args) throws IOException {

        Reader in = new PipedReader();
        PushbackReader pushbackReader = new PushbackReader(in);

        long n = 100L;

        System.out.println(pushbackReader.skip(n));
        pushbackReader.close();
    }
}

Output:

Exception in thread "main" java.io.IOException: Pipe not connected at java.base/java.io.PipedReader.read(PipedReader.java:293) at java.base/java.io.Reader.skip(Reader.java:277) at java.base/java.io.FilterReader.skip(FilterReader.java:84) at java.base/java.io.PushbackReader.skip(PushbackReader.java:282) at com.PushbackReader.PushbackReaderskip.main(PushbackReaderskip.java:16)


Some other methods of PushbackReader

close(): This method closes the stream and releases any system resources associated with it.

mark(int): This method marks the present position in the stream.

markSupported(): This method tells whether this stream supports the mark() operation, which it does not.

PushbackReader(Reader): This method creates a new pushback reader with a one-character pushback buffer.

PushbackReader(Reader, int): This method creates a new pushback reader with a pushback buffer of the given size.

read(): This method reads a single character.

read(char[], int, int): This method reads characters into a portion of an array.

ready(): This method tells whether this stream is ready to be read.

reset(): This method resets the stream.

skip(long): This method skips characters

unread(char[]): This method pushes back an array of characters by copying it to the front of the pushback buffer.

unread(int): This method pushes back a single character by copying it to the front of the pushback buffer.

unread(char[], int, int):  This method pushes back a portion of an array of characters by copying it to the front of the pushback buffer.

No comments:

Post a Comment