org.freehep.util.io
Class ByteCountOutputStream
java.lang.Object
|
+--java.io.OutputStream
|
+--java.io.FilterOutputStream
|
+--org.freehep.util.io.BitOutputStream
|
+--org.freehep.util.io.ByteOrderOutputStream
|
+--org.freehep.util.io.ByteCountOutputStream
- All Implemented Interfaces:
- DataOutput, FinishableOutputStream
- Direct Known Subclasses:
- TaggedOutputStream
- public class ByteCountOutputStream
- extends ByteOrderOutputStream
Allows to write to some internal buffer and keep count of any
set of stacked buffers written. When a pushBuffer is called,
a new buffer is created. When a popBuffer is called, the number
of bytes written to the popped buffer is returned. From this moment
on one is writing again to the underlying buffer/outputstream.
A header can be written and the header can be
written. By calling append(), the previous buffer will be
appended to the underlying one. This way one can write
into a buffer, retrieve its length, create some header bytes
and insert those in front of the just written buffer.
- Version:
- $Id: ByteCountOutputStream.java,v 1.8 2002/07/26 06:44:32 duns Exp $
- Author:
- Mark Donszelmann
Method Summary |
void |
append()
Inserts the bytes written as header and
puts the write pointer at the end of the stream. |
void |
close()
closes the stream, inserting any non-written header. |
int |
getBufferLength()
|
int |
getLength()
|
int |
popBuffer()
returns the number of bytes written since the last pushBuffer call. |
void |
pushBuffer()
|
void |
write(int b)
|
Methods inherited from class org.freehep.util.io.ByteOrderOutputStream |
size, writeAsciiZString, writeBoolean, writeByte, writeByte, writeBytes, writeChar, writeChars, writeDouble, writeFloat, writeInt, writeInt, writeLong, writeShort, writeShort, writeString, writeUnsignedByte, writeUnsignedByte, writeUnsignedInt, writeUnsignedInt, writeUnsignedShort, writeUnsignedShort, writeUTF, writeUTF |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ByteCountOutputStream
public ByteCountOutputStream(OutputStream out,
boolean littleEndian,
int stackDepth)
write
public void write(int b)
throws IOException
- Specified by:
write
in interface DataOutput
- Overrides:
write
in class ByteOrderOutputStream
IOException
pushBuffer
public void pushBuffer()
throws IOException
IOException
popBuffer
public int popBuffer()
throws IOException
- returns the number of bytes written since the last pushBuffer call.
It also puts the write pointer at the start of the buffer, to be able
to "insert" a header.
If no buffer was ever pushed, or the last one has been popped -1 is returned.
IOException
getBufferLength
public int getBufferLength()
getLength
public int getLength()
append
public void append()
throws IOException
- Inserts the bytes written as header and
puts the write pointer at the end of the stream.
IOException
close
public void close()
throws IOException
- closes the stream, inserting any non-written header.
- Overrides:
close
in class BitOutputStream
IOException
Copyright © 2000-2002 FreeHEP, All Rights Reserved.