com.sleepycat.db

## Class DatabaseStream

- java.lang.Object
- - com.sleepycat.db.DatabaseStream

    public class DatabaseStream
    extends java.lang.Object

A database stream. The database stream is used to access external files.

Once the database stream close method has been called, the handle may not be accessed again.

To obtain a database stream with default attributes:

>         DatabaseStream dbs = myCursor.openDatabaseStream(null);

To customize the attributes of a database stream, use a DatabaseStreamConfig object.

>         DatabaseStreamConfig config = new DatabaseStreamConfig();
>         config.setReadOnly(true);
>         DatabaseStream dbs = myCursor.openDatabaseStream(config);

### Constructor Summary

Constructors
`protected` `DatabaseStream(Cursor cursor, DatabaseStreamConfig config)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `close()` Discard the database stream.
`DatabaseStreamConfig` `getConfig()` Return this database stream configuration.
`Cursor` `getCursor()` Return the `Cursor` handle associated with this database stream.
`OperationStatus` `read(DatabaseEntry data, long offset, int size)` Read from the external file accessed by this database stream.
`long` `size()` Return the size in bytes of the external file accessed by the database stream.
`OperationStatus` `write(DatabaseEntry data, long offset)` Write to the external file accessed by the database stream.

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

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

### Constructor Detail

#### DatabaseStream

    protected DatabaseStream(Cursor cursor,
                             DatabaseStreamConfig config)

### Method Detail

#### close

    public void close()
               throws DatabaseException

Discard the database stream.

After the close method has been called, you cannot use the database stream handle again.

It is recommended to always close all database stream handles immediately after their use to release resources.

Throws:
  `DatabaseException` - if a failure occurs.

#### getConfig

    public DatabaseStreamConfig getConfig()

Return this database stream configuration.

Returns:
  This database stream configuration.

#### getCursor

    public Cursor getCursor()

Return the `Cursor` handle associated with this database stream.

Returns:
  The cursor handle associated with this database stream.

#### read

    public OperationStatus read(DatabaseEntry data,
                                long offset,
                                int size)
                         throws DatabaseException,
                                java.lang.IllegalArgumentException

Read from the external file accessed by this database stream.

Parameters:
  `data` - the data read from the file returned as output. Its byte array does not need to be initialized by the caller.

  `offset` - the position in bytes in the file where the reading starts.

  `size` - the number of bytes to read.

Returns:
  `OperationStatus.SUCCESS` if the operation succeeds.

Throws:
  `java.lang.IllegalArgumentException` - if a failure occurs.

  `java.lang.IllegalArgumentException` - if the operation fails.

  `DatabaseException` - if a failure occurs.

#### size

    public long size()
              throws DatabaseException

Return the size in bytes of the external file accessed by the database stream.

Returns:
  The size in bytes of the file accessed by the database stream.

Throws:
  `DatabaseException` - if a failure occurs.

#### write

    public OperationStatus write(DatabaseEntry data,
                                 long offset)
                          throws DatabaseException,
                                 java.lang.IllegalArgumentException

Write to the external file accessed by the database stream.

Parameters:
  `data` - the data `DatabaseEntry` to write into the file.

  `offset` - the position in bytes in the file where the writing starts.

Returns:
  `OperationStatus.SUCCESS` if the operation succeeds.

Throws:
  `java.lang.IllegalArgumentException` - if the operation fails.

  `DatabaseException` - if a failure occurs.