Java で語彙アナライザーを作成し、PushbackInputStream を使用しています。これは、私が望んでいたものではない場合に備えて、読んだものをプッシュバックできるようにする必要があるためです。しかし、ストリームが空で read() が -1 を返すときはいつでも。unread() を使用することはできません。
編集:私は現在、通常の InputStream を使用しており、一度にすべてを読み取り、スタックに入れ、スタックをストリームとして使用して、アイテムを pop() および push() できるようにしています。