## org.apache.lucene.util
Class PagedBytes

    java.lang.Object
      org.apache.lucene.util.PagedBytes

    public final class PagedBytes

extends Object

Represents a logical byte[] as a series of pages. You can write-once into the logical byte[] (append only), using copy, and then retrieve slices (BytesRef) into it using fill.

NOTE: This API is for internal purposes only and might change in incompatible ways in the next release.

Nested Class Summary
`class` `PagedBytes.PagedBytesDataInput`
`class` `PagedBytes.PagedBytesDataOutput`
`static class` `PagedBytes.Reader` Provides methods to read BytesRefs from a frozen PagedBytes.

Constructor Summary
`PagedBytes(int blockBits)` 1<<blockBits must be bigger than biggest single BytesRef slice that will be pulled

Method Summary
`void` `copy(BytesRef bytes)` Copy BytesRef in
`void` `copy(BytesRef bytes, BytesRef out)` Copy BytesRef in, setting BytesRef out to the result.
`void` `copy(IndexInput in, long byteCount)` Read this many bytes from in
`long` `copyUsingLengthPrefix(BytesRef bytes)` Copy bytes in, writing the length as a 1 or 2 byte vInt prefix.
`PagedBytes.Reader` `freeze(boolean trim)` Commits final byte[], trimming it if necessary and if trim=true
`PagedBytes.PagedBytesDataInput` `getDataInput()` Returns a DataInput to read values from this PagedBytes instance.
`PagedBytes.PagedBytesDataOutput` `getDataOutput()` Returns a DataOutput that you may use to write into this PagedBytes instance.
`long` `getPointer()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### PagedBytes

    public PagedBytes(int blockBits)

  1<<blockBits must be bigger than biggest single BytesRef slice that will be pulled

Method Detail

### copy

    public void copy(IndexInput in,
                     long byteCount)
              throws IOException

  Read this many bytes from in

  Throws:
    `IOException`

### copy

    public void copy(BytesRef bytes)
              throws IOException

  Copy BytesRef in

  Throws:
    `IOException`

### copy

    public void copy(BytesRef bytes,
                     BytesRef out)
              throws IOException

  Copy BytesRef in, setting BytesRef out to the result. Do not use this if you will use freeze(true). This only supports bytes.length <= blockSize

  Throws:
    `IOException`

### freeze

    public PagedBytes.Reader freeze(boolean trim)

  Commits final byte[], trimming it if necessary and if trim=true

### getPointer

    public long getPointer()

### copyUsingLengthPrefix

    public long copyUsingLengthPrefix(BytesRef bytes)
                               throws IOException

  Copy bytes in, writing the length as a 1 or 2 byte vInt prefix.

  Throws:
    `IOException`

### getDataInput

    public PagedBytes.PagedBytesDataInput getDataInput()

  Returns a DataInput to read values from this PagedBytes instance.

### getDataOutput

    public PagedBytes.PagedBytesDataOutput getDataOutput()

  Returns a DataOutput that you may use to write into this PagedBytes instance. If you do this, you should not call the other writing methods (eg, copy); results are undefined.