# Package org.apache.pdfbox.io

This package contains IO streams.

See: Description

Interface Summary
RandomAccess: An interface to allow data to be stored completely in memory or to use a scratch file on the disk.
RandomAccessRead: An interface allowing random access read operations.
RandomAccessStreamCache: An interface describing a StreamCache to be used when creating/writing streams of a PDF.
RandomAccessStreamCache.StreamCacheCreateFunction
RandomAccessWrite: An interface allowing random access write operations.

Class Summary
IOUtils: This class contains various I/O-related methods.
MemoryUsageSetting: Controls how memory/temporary files are used for buffering streams etc.
NonSeekableRandomAccessReadInputStream: An implementation of the RandomAccessRead interface using an InputStream as source.
RandomAccessInputStream: An InputStream which reads from a RandomAccessRead.
RandomAccessOutputStream: An OutputStream which writes to a RandomAccessWrite.
RandomAccessReadBuffer: An implementation of the RandomAccessRead interface to store data in memory.
RandomAccessReadBufferedFile: Provides random access to portions of a file combined with buffered reading of content.
RandomAccessReadMemoryMappedFile: An implementation of the RandomAccess interface backed by a memory mapped file channel.
RandomAccessReadView: This class provides a view of a part of a random access read.
RandomAccessReadWriteBuffer: An implementation of the RandomAccess interface to store data in memory.
RandomAccessStreamCacheImpl: A default implementation of the interface RandomAccessStreamCache using a memory backed RandomAccessReadWriteBuffer.
ScratchFile: Implements a memory page handling mechanism as base for creating (multiple) `RandomAccess` buffers each having its set of pages (implemented by `ScratchFileBuffer`).
SequenceRandomAccessRead: Wrapper class to combine several RandomAccessRead instances so that they can be accessed as one big RandomAccessRead.

## Package org.apache.pdfbox.io Description

This package contains IO streams.