Java中的 PushbackInputStream skip() 方法及示例
Java中PushbackInputStream类的skip(long n)方法用于跳过并丢弃此输入流中的 n 字节数据。该方法首先跳过推回缓冲区中的字节,然后调用主输入流的跳过方法。它返回实际跳过的字节数。
句法:
public long skip(long n)
throws IOException
覆盖:此方法覆盖FilterInputStream类的 skip() 方法。
参数:该方法接受一个参数n,表示要跳过的字节数。
返回值:该方法返回实际跳过的字节数。
异常:如果流已通过调用 close() 方法关闭或发生 I/O 错误,则此方法抛出IOException 。
下面的程序说明了 IO 包中 PushbackInputStream 类的 skip(long) 方法:
方案一:
// Java program to illustrate
// PushbackInputStream skip(long) 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);
// Revoke skip()
pushbackInputStr.skip(2);
for (int i = 0; i < byteArray.length - 2; i++) {
// Read the character
System.out.print(
(char)pushbackInputStr.read());
}
}
}
输出:
EKS
方案二:
// Java program to illustrate
// PushbackInputStream skip(long) 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',
'F', 'O', 'R', 'G', 'E',
'E', 'K', 'S' };
// Create inputStream
InputStream inputStr
= new ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
= new PushbackInputStream(inputStr);
// Revoke skip()
pushbackInputStr.skip(8);
for (int i = 0; i < byteArray.length - 8; i++) {
// Read the character
System.out.print(
(char)pushbackInputStr.read());
}
}
}
输出:
GEEKS
参考:
https://docs.oracle.com/javase/10/docs/api/java Java)