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());
        }  
    }
}

学生