org.apache.lucene.analysis.util

## Class RollingCharBuffer

- java.lang.Object
- - org.apache.lucene.analysis.util.RollingCharBuffer

    public final class RollingCharBuffer
    extends Object

Acts like a forever growing char[] as you read characters into it from the provided reader, but internally it uses a circular buffer to only hold the characters that haven't been freed yet. This is like a PushbackReader, except you don't have to specify up-front the max size of the buffer, but you do have to periodically call `freeBefore(int)`.

### Constructor Summary

Constructors
Constructor and Description
`RollingCharBuffer()`

### Method Summary

Methods
`void` `freeBefore(int pos)` Call this to notify us that no chars before this absolute position are needed anymore.
`int` `get(int pos)`
`char[]` `get(int posStart, int length)`
`void` `reset(Reader reader)` Clear array and switch to new reader.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### RollingCharBuffer

    public RollingCharBuffer()

### Method Detail

#### reset

    public void reset(Reader reader)

Clear array and switch to new reader.

#### get

    public int get(int pos)
            throws IOException

Throws:
  `IOException`

#### get

    public char[] get(int posStart,
             int length)

#### freeBefore

    public void freeBefore(int pos)

Call this to notify us that no chars before this absolute position are needed anymore.