Java - Reader skip(long n) method



Description

The Java Reader skip(long n) 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.

Declaration

Following is the declaration for java.io.Reader.skip(long n) method.

public long skip(long n)

Parameters

n − The number of characters to skip.

Return Value

This method returns the number of characters actually skipped.

Exception

  • IllegalArgumentException − If n is negative.

  • IOException − If an I/O error occurs.

Example - Usage of Reader skip(long n) method

The following example shows the usage of Reader skip(long n) method.

ReaderDemo.java

package com.tutorialspoint;

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

public class ReaderDemo {
   public static void main(String[] args) {
      String s = "Hello World";

      // create a new StringReader
      Reader reader = new StringReader(s);

      try {
         // read the first five chars
         for (int i = 0; i < 5; i++) {
            char c = (char) reader.read();

            // skip a char every time
            reader.skip(1);

            System.out.print( c);
         }

         // change line
         System.out.println();

         // close the stream
         reader.close();

      } catch (IOException ex) {
         ex.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result −

HloWr

Example - Skipping a few characters from a StringReader

The following example shows the usage of Reader skip(long n) method.

ReaderDemo.java

package com.tutorialspoint;

import java.io.StringReader;
import java.io.IOException;

public class ReaderDemo {
   public static void main(String[] args) {
      try (StringReader reader = new StringReader("HelloWorld")) {
         reader.skip(5); // Skip first 5 characters: "Hello"
         int nextChar = reader.read(); // Read the next character after skipped ones
         System.out.println("Next character after skip: " + (char) nextChar);
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Next character after skip: W

Explanation

  • The first 5 characters (Hello) are skipped.

  • The next character (W) is read and printed.

Example - Skipping more characters than the stream contains

The following example shows the usage of Reader skip(long n) method.

ReaderDemo.java

package com.tutorialspoint;

import java.io.StringReader;
import java.io.IOException;

public class ReaderDemo {
   public static void main(String[] args) {
      try (StringReader reader = new StringReader("Java")) {
         long skipped = reader.skip(10); // Try to skip more characters than available
         System.out.println("Characters actually skipped: " + skipped);

         int next = reader.read();
         if (next == -1) {
            System.out.println("End of stream reached.");
         } else {
            System.out.println("Next character: " + (char) next);
         }
      } catch (IOException e) {
         e.printStackTrace();
      }
   }
}

Output

Let us compile and run the above program, this will produce the following result−

Characters actually skipped: 4
End of stream reached.

Explanation

  • The string "Java" has only 4 characters.

  • skip(10) attempts to skip 10, but only 4 are skipped.

  • The stream reaches the end, so read() returns -1.

java_io_reader.htm
Advertisements