Java PushbackReader
类
原文:https://www.studytonight.com/java-file-io/java-pushbackreader-class
在本教程中,我们将学习 Java 中的PushbackReader
类。这个类是一个字符流类,它允许将字符推回到流中。这个类的 unread()方法允许我们推回字符。
句法
这是PushbackReader
类的语法声明,这个类扩展了FilterReader
类。
public class PushbackReader extends FilterReader
推送Reader
类构造器
下表给出了推送Reader
类的构造器:
构造器 | 描述 |
---|---|
PushbackReader(Reader in) |
这将创建一个新的带有一个字符推送缓冲区的推送读取器。 |
PushbackReader(Reader in, int size) |
这将创建一个带有给定大小的推回缓冲区的新推回读取器。 |
推送Reader
类方法
下表给出了该类的所有方法。
方法 | 描述 |
---|---|
int read() |
此方法用于读取单个字符。 |
void mark(int readAheadLimit) |
此方法用于标记流中的当前位置。 |
boolean ready() |
此方法用于判断流是否准备好被读取。 |
boolean markSupported() |
此方法用于判断流是否支持 mark()操作。 |
long skip(long n) |
此方法用于跳过字符。 |
void unread (int c) |
此方法用于通过将字符复制到推回缓冲区来推回字符。 |
void unread (char[] cbuf) |
此方法用于通过将字符数组复制到推回缓冲区来推回该数组。 |
void reset() |
此方法用于重置流。 |
void close() |
此方法用于关闭流。 |
推送Reader
类示例
在下面给出的例子中,我们讨论的是read()
和skip()
方法。这里我们可以看到,我们有一个字符串,使用这个字符串的字符串读取器,我们创建了一个推回Reader
类的对象。现在我们应用read()
方法从字符串中读取每个字符,但是我们也实现了skip()
方法,因此它将打印替代字符。
package studytonight;
import java.io.PushbackReader;
import java.io.StringReader;
public class StudyTonight
{
public static void main(String args[])
{
try
{
String str = "Hello Studytonight";
StringReader reader = new StringReader(str);
PushbackReader pushbackReader = new PushbackReader(reader);
System.out.println("pushbackReader ready: " + pushbackReader.ready());
for (int i = 0; i < 9; i++)
{
char ch = (char) pushbackReader.read();
System.out.print(ch);
pushbackReader.skip(1);
}
}
catch (Exception e) {
System.out.print("Error: "+e.toString());
}
}
}
pushbalreader 就绪:true hlosyoih
推送Reader
类示例
在这个例子中,我们实现了推回Reader
类的 unread()方法,这里我们读取的前 5 个字符与我们在上面的文章中读取的相同。从字符串中读取 7 个字符后,我们使用未读方法推送 s,当我们尝试使用 read()方法读取一个新字符时,它将返回相同的字符。
package studytonight;
import java.io.PushbackReader;
import java.io.StringReader;
public class StudyTonight
{
public static void main(String args[])
{
String str = "Student of this class";
StringReader reader = new StringReader(str);
PushbackReader pushbackReader = new PushbackReader(reader, 20);
try
{
for (int i = 0; i < 7; i++)
{
char ch = (char) pushbackReader.read();
System.out.print("" + ch);
}
pushbackReader.unread('s');
char ch = (char) pushbackReader.read();
System.out.println("" + ch);
pushbackReader.close();
}
catch (Exception e)
{
System.out.print("Error: "+e.toString());
}
}
}
学生