Java中的 PushbackReader mark(int) 方法和示例
Java中PushbackReader类的mark()方法用于标记PushbackReader的当前位置。对于 PushbackReader,此方法始终会引发异常,因为 PushbackReader 不支持此方法。
句法:
public void mark(int readAheadLimit)
参数:此方法接受一个强制参数readAheadLimit ,它是在仍保留标记的同时可以读取的字符数的限制。读完这么多字符后,尝试重置流可能会失败。
返回值:此方法不返回任何值。
异常:此方法总是抛出 IOException,因为不支持 mark() 方法。
以下方法说明了 mark() 方法的工作原理:
方案一:
// Java program to demonstrate
// PushbackReader mark(int) method
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
try {
// Initializing a StringReader and PushbackReader
String s = "GeeksForGeeks";
StringReader stringReader
= new StringReader(s);
PushbackReader pushbackReader
= new PushbackReader(stringReader);
// mark the stream for
// 5 characters using mark()
pushbackReader.mark(5);
// Close the stream using mark(int)
pushbackReader.close();
System.out.println("Stream Closed.");
}
catch (Exception e) {
System.out.println(e);
}
}
}
输出:
java.io.IOException: mark/reset not supported
方案二:
// Java program to demonstrate
// PushbackReader mark(int) method
import java.io.*;
import java.util.*;
class GFG {
public static void main(String[] args)
{
try {
// Initializing a StringReader and PushbackReader
String s = "GFG";
StringReader stringReader
= new StringReader(s);
PushbackReader pushbackReader
= new PushbackReader(stringReader);
// mark the stream for
// 1 characters using mark()
pushbackReader.mark(1);
// Close the stream
pushbackReader.close();
System.out.println("Stream Closed.");
}
catch (Exception e) {
System.out.println(e);
}
}
}
输出:
java.io.IOException: mark/reset not supported
参考: https://docs.oracle.com/javase/9/docs/api/ Java/io/PushbackReader.html#mark-int-