Package uk.ac.starlink.table.storage
Class MemoryByteStore
java.lang.Object
java.io.OutputStream
java.io.ByteArrayOutputStream
uk.ac.starlink.table.storage.MemoryByteStore
- All Implemented Interfaces:
Closeable,Flushable,AutoCloseable,ByteStore
ByteStore implementation which stores bytes in a buffer in memory.
- Since:
- 11 Jul 2008
- Author:
- Mark Taylor
-
Field Summary
Fields inherited from class java.io.ByteArrayOutputStream
buf, count -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()Tidies up.voidcopy(OutputStream out) Takes all the data written so far into this store's sink stream and copies it to a destination stream.longReturns the number of bytes currently stored in this object.Returns an output stream which can be used to write to the store.Returns an array of byte buffers containing the bytes written to this store.Methods inherited from class java.io.ByteArrayOutputStream
reset, size, toByteArray, toString, toString, toString, toString, write, write, writeBytes, writeToMethods inherited from class java.io.OutputStream
flush, nullOutputStream, write
-
Constructor Details
-
MemoryByteStore
public MemoryByteStore()
-
-
Method Details
-
getOutputStream
Description copied from interface:ByteStoreReturns an output stream which can be used to write to the store. May be called multiple times; always returns the same object. Note that this is not in general buffered - it is the responsibility of the user to take steps like wrapping it in aBufferedOutputStreamfor efficiency if required.- Specified by:
getOutputStreamin interfaceByteStore- Returns:
- data sink stream
-
copy
Description copied from interface:ByteStoreTakes all the data written so far into this store's sink stream and copies it to a destination stream. The output stream is not closed.- Specified by:
copyin interfaceByteStore- Parameters:
out- data destination stream- Throws:
IOException
-
getLength
public long getLength()Description copied from interface:ByteStoreReturns the number of bytes currently stored in this object. -
toByteBuffers
Description copied from interface:ByteStoreReturns an array of byte buffers containing the bytes written to this store. The stored bytes are all of the bytes from the first buffer in the returned array, followed by all in the second, etc. In many cases the returned array will, and probably should, contain a single buffer, but if the written byte count exceedsInteger.MAX_VALUE, more than one will be required. The limit of each buffer indicates the number of bytes it contains.Usual usage will be to write all data, then call this method once; this model may affect implementation decisions about efficiency.
- Specified by:
toByteBuffersin interfaceByteStore- Returns:
- byte buffer containing bytes written
-
close
public void close()Description copied from interface:ByteStoreTidies up. Should be called when the data in this object is no longer required. This object may no longer be usable following a call to this method.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceByteStore- Specified by:
closein interfaceCloseable- Overrides:
closein classByteArrayOutputStream
-