📜  Java.io.PushbackReader Java中的类(1)

📅  最后修改于: 2023-12-03 15:16:02.519000             🧑  作者: Mango

Java.io.PushbackReader Java中的类

Java.io.PushbackReader是一个Java中的类,用于将字符读取器装饰为可推回字符的字符读取器。

构造函数
  • PushbackReader(Reader in):将给定的Reader包装成一个PushbackReader,并使用默认推回缓冲区大小(1)进行初始化。
  • PushbackReader(Reader in, int size):将给定的Reader包装成一个PushbackReader,并用指定的缓冲区大小进行初始化。
用法

PushbackReader类有两个主要的方法:mark(int readAheadLimit)reset()mark(int readAheadLimit)方法标记当前的读写位置,并读取指定数量的字符放入推回缓冲区中。之后可以使用reset()方法将读写位置重置回标记处,并重新读取推回缓冲区中的字符。

代码示例
try {
    FileInputStream fileInputStream = new FileInputStream("filename.txt");
    InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
    PushbackReader pushbackReader = new PushbackReader(inputStreamReader);
    int c;
    while ((c = pushbackReader.read()) != -1) {
        if (c == '/') {
            if ((c = pushbackReader.read()) == '/') {
                while ((c = pushbackReader.read()) != '\n') ;
            } else if (c == '*') {
                while (true) {
                    if ((c = pushbackReader.read()) == '*') {
                        if ((c = pushbackReader.read()) == '/') break;
                        else pushbackReader.unread(c);
                    }
                }
            } else pushbackReader.unread(c);
        } else {
            System.out.print((char)c);
        }
    }
    pushbackReader.close();
} catch (IOException e) {
    e.printStackTrace();
}

上面的代码示例是一个Java程序,该程序可以从文件中读取文本内容,并将其中的注释删去。在读取每个字符时,如果当前字符是/,则读取下一个字符。如果下一个字符也是/,则读取到下一行的末尾。如果下一个字符是*,则读取到*/结束为止。否则,将读取到的下一个字符“推回”到推回缓冲区中。