Java中的 PushbackInputStream mark() 方法及示例
Java中PushbackInputStream类的mark()方法用于标记输入流中的当前位置。此方法对 PushbackInputStream 没有任何作用。
句法:
public void mark(int readlimit)
覆盖:此方法覆盖FilterInputStream类的 mark() 方法。
参数:此方法接受单个参数readlimit ,表示在标记位置无效之前可以读取的最大字节数限制。
返回值:此方法不返回任何值。
异常:此方法不会抛出任何异常。
下面的程序说明了 IO 包中 PushbackInputStream 类的 mark() 方法:
方案一:
// 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);
}
}
输出:
GEEKS
方案二:
// 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());
}
}
}
输出:
HELLO
参考:
https://docs.oracle.com/javase/10/docs/api/java Java)