# Package org.apache.axiom.blob

Contains utility classes to work with binary data. They are typically used to store data temporarily and often provide a better alternative than using `ByteArrayOutputStream` and `ByteArrayInputStream`.

- Interface Summary
  Interface | Description
  --- | ---
  Blob | Stores binary data.
  MemoryBlob | Blob that stores data in memory.
  OverflowableBlob | Blob that accumulates data in memory and transfers it to a different type of blob if the size exceeds a certain threshold.
  WritableBlob | A writable blob.
  WritableBlobFactory<T extends WritableBlob> | A factory for `WritableBlob` instances.

- Class Summary
  Class | Description
  --- | ---
  AbstractWritableBlob | Partial implementation of the `WritableBlob` interface that implements `WritableBlob.readFrom(InputStream)` using `WritableBlob.getOutputStream()` and `Blob.writeTo(OutputStream)` using `Blob.getInputStream()`.
  BlobDataSource | Data source backed by a `Blob`.
  Blobs | Contains factory methods to create various types of blobs.
  MemoryBlobInputStream | Input stream that doesn't throw `IOException` and that supports `InputStream.mark(int)`.
  MemoryBlobOutputStream | Output stream that doesn't throw `IOException` and that implements `ReadFromSupport`.