- Java.io - Home
- Java.io - BufferedInputStream
- Java.io - BufferedOutputStream
- Java.io - BufferedReader
- Java.io - BufferedWriter
- Java.io - ByteArrayInputStream
- Java.io - ByteArrayOutputStream
- Java.io - CharArrayReader
- Java.io - CharArrayWriter
- Java.io - Console
- Java.io - DataInputStream
- Java.io - DataOutputStream
- Java.io - File
- Java.io - FileDescriptor
- Java.io - FileInputStream
- Java.io - FileOutputStream
- Java.io - FilePermission
- Java.io - FileReader
- Java.io - FileWriter
- Java.io - FilterInputStream
- Java.io - FilterOutputStream
- Java.io - FilterReader
- Java.io - FilterWriter
- Java.io - InputStream
- Java.io - InputStreamReader
- Java.io - LineNumberInputStream
- Java.io - LineNumberReader
- Java.io - ObjectInputStream
- Java.io - ObjectInputStream.GetField
- Java.io - ObjectOutputStream
- io - ObjectOutputStream.PutField
- Java.io - ObjectStreamClass
- Java.io - ObjectStreamField
- Java.io - OutputStream
- Java.io - OutputStreamWriter
- Java.io - PipedInputStream
- Java.io - PipedOutputStream
- Java.io - PipedReader
- Java.io - PipedWriter
- Java.io - PrintStream
- Java.io - PrintWriter
- Java.io - PushbackInputStream
- Java.io - PushbackReader
- Java.io - RandomAccessFile
- Java.io - Reader
- Java.io - SequenceInputStream
- Java.io - SerializablePermission
- Java.io - StreamTokenizer
- Java.io - StringBufferInputStream
- Java.io - StringReader
- Java.io - StringWriter
- Java.io - Writer
- Java.io package Useful Resources
- Java.io - Discussion
Java - BufferedInputStream skip() method
Description
The Java BufferedInputStream skip(long) method skips n bytes of data from the buffered input stream. The number of bytes skipped id returned as long. For negative n, no bytes are skipped.
The skip method of BufferedInputStream creates a byte array which is read into until n bytes are read or the end of the stream is reached.
Declaration
Following is the declaration for java.io.BufferedInputStream.skip(long n) method.
public long skip(long n)
Parameters
n − number of bytes to be skipped.
Return Value
Returns actual number of bytes to be skipped.
Exception
IOException − If the stream not supporting seek, or if other I/O error occurs.
Assumption
Assuming we have a text file example.txt, which has the following content. This file will be used as an input for our example programs −
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Example - Skip single byte
The following example shows the usage of Java BufferedInputStream skip() method.
BufferedInputStreamDemo.java
package com.tutorialspoint;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
public class BufferedInputStreamDemo {
public static void main(String[] args) throws Exception {
InputStream is =null;
BufferedInputStream bis = null;
try {
// open input stream test.txt for reading purpose.
is = new FileInputStream("example.txt");
// input stream is converted to buffered input stream
bis = new BufferedInputStream(is);
// read until a single byte is available
while(bis.available()>0) {
// skip single byte from the stream
bis.skip(1);
// read next available byte and convert to char
char c = (char)bis.read();
// print character
System.out.print(" " + c);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
// releases resources from the streams
if(is!=null)
is.close();
if(bis!=null)
bis.close();
}
}
}
Output
Let us compile and run the above program, this will produce the following result −
B D F H J L N P R T V X Z
Example - Skipping a Specific Number of Bytes
The following example shows the usage of Java BufferedInputStream skip() method.
BufferedInputStreamDemo.java
package com.tutorialspoint;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
public class BufferedInputStreamDemo {
public static void main(String[] args) {
byte[] data = "Hello, this is a skip example!".getBytes();
// open input stream test.txt for reading purpose.
try (BufferedInputStream bis = new BufferedInputStream(
new ByteArrayInputStream(data))) {
System.out.println("Before skipping:");
System.out.print((char) bis.read()); // Read and print the first byte (H)
// Skip the next 7 bytes
bis.skip(7);
System.out.println("\nAfter skipping 7 bytes:");
// Read and print the next byte (should be 't')
System.out.print((char) bis.read());
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result −
Before skipping: H After skipping 7 bytes: h
Explanation
-
Data Source−
A ByteArrayInputStream contains the string "Hello, this is a skip example!".
The stream is wrapped in a BufferedInputStream.
-
Using skip(long n)−
The first byte (H) is read and printed.
The skip(7) method discards the next 7 bytes (ello, t), advancing the stream position.
-
Reading After Skip−
After skipping, the next byte is read and printed (t).
Example - Skipping a Specific Number of Bytes
The following example shows the usage of Java BufferedInputStream skip() method.
BufferedInputStreamDemo.java
package com.tutorialspoint;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
public class BufferedInputStreamDemo {
public static void main(String[] args) {
byte[] data = "Short data".getBytes();
try (BufferedInputStream bis = new BufferedInputStream(
new ByteArrayInputStream(data))) {
// Skip 20 bytes (more than the stream length)
long skippedBytes = bis.skip(20);
System.out.println("Bytes attempted to skip: 20");
System.out.println("Bytes actually skipped: " + skippedBytes);
// Try reading after skipping
int nextByte = bis.read();
if (nextByte == -1) {
System.out.println("No more data to read (end of stream).");
} else {
System.out.println("Next byte after skipping: " + (char) nextByte);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Output
Let us compile and run the above program, this will produce the following result −
Bytes attempted to skip: 20 Bytes actually skipped: 10 No more data to read (end of stream).
Explanation
-
Data Source−
The ByteArrayInputStream contains "Short data", which is only 10 bytes long.
-
Using skip(long n)−
The skip(20) method attempts to skip 20 bytes, but only skips the available 10 bytes.
The method returns the actual number of bytes skipped (10).
-
Reading After Skip−
The stream reaches the end, and attempting to read further returns -1.
Key Points
-
Behavior−
The skip(long n) method may not skip all requested bytes, especially if fewer bytes are available in the stream.
The method returns the actual number of bytes skipped.
-
Use Cases−
Skipping over unimportant or irrelevant sections of the stream.
Efficiently moving to a specific point in the data.
-
Limitations−
If the stream reaches the end during a skip, subsequent reads return -1.