## 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, 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,
                     BytesRef out)

  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

### 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)

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

### 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.

Copyright © 2000-2013 Apache Software Foundation. All Rights Reserved.