Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.0.0

E15725-01


com.tangosol.io
Class ByteArrayWriteBuffer.ByteArrayBufferOutput

java.lang.Object
  extended by java.io.OutputStream
      extended by com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
          extended by com.tangosol.io.ByteArrayWriteBuffer.ByteArrayBufferOutput

All Implemented Interfaces:
OutputStreaming, WriteBuffer.BufferOutput, Closeable, DataOutput, Flushable
Enclosing class:
ByteArrayWriteBuffer

public final class ByteArrayWriteBuffer.ByteArrayBufferOutput
extends AbstractWriteBuffer.AbstractBufferOutput

ByteArrayBufferOutput is an implementation of BufferOutput optimized for writing to the buffer's underlying byte array.

Author:
cp 2005.03.25

Field Summary

 

Fields inherited from class com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
m_ofWrite

 

Fields inherited from interface com.tangosol.io.WriteBuffer.BufferOutput
MAX_PACKED_INT_SIZE, MAX_PACKED_LONG_SIZE

 

Constructor Summary
ByteArrayWriteBuffer.ByteArrayBufferOutput()
          Construct an ByteArrayBufferOutput that will begin writing at the start of the containing WriteBuffer.
ByteArrayWriteBuffer.ByteArrayBufferOutput(int of)
          Construct an ByteArrayBufferOutput that will begin writing at the specified offset within the containing WriteBuffer.

 

Method Summary
protected  void moveOffset(int cb)
          Move the offset within the stream forward.
 void writeBytes(String s)
          Writes the String s, but only the low-order byte from each character of the String is written.
 void writeChars(String s)
          Writes the String s as a sequence of characters.
 void writeInt(int n)
          Writes an int value.
 void writeLong(long l)
          Writes a long value.
 void writePackedInt(int n)
          Write an int value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 4-byte Big Endian binary format for int values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the int value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the int value. In this way, a 32-bit value is encoded into 1-5 bytes, depending on the magnitude of the int value being encoded.

 void writePackedLong(long l)
          Write a long value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 8-byte Big Endian binary format for long values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the long value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the long value. In this way, a 64-bit value is encoded into 1-10 bytes, depending on the magnitude of the long value being encoded.

 void writeSafeUTF(String s)
          Write a variable-length encoded UTF packed String. The major differences between this implementation and DataOutput is that this implementation supports null values and is not limited to 64KB UTF-encoded values.

The binary format for a Safe UTF value is a "packed int" for the binary length followed by the UTF-encoded byte stream. The length is either -1 (indicating a null String) or in the range 0 .. Integer.MAX_VALUE (inclusive). The UTF-encoded portion uses a format identical to DataOutput.

 void writeShort(int n)
          Writes a short value, comprised of the 16 low-order bits of the argument n; the 16 high-order bits of n are ignored.
 void writeUTF(String s)
          Writes the String s as a sequence of characters, but using UTF-8 encoding for the characters, and including the String length data so that the corresponding DataInput.readUTF() method can reconstitute a String from the written data.

 

Methods inherited from class com.tangosol.io.AbstractWriteBuffer.AbstractBufferOutput
calcUTF, close, flush, formatUTF, formatUTF, getBuffer, getCharBuf, getOffset, setOffset, write, write, write, writeBoolean, writeBuffer, writeBuffer, writeByte, writeChar, writeDouble, writeFloat, writeStream, writeStream, writeUTF

 

Constructor Detail

ByteArrayWriteBuffer.ByteArrayBufferOutput

public ByteArrayWriteBuffer.ByteArrayBufferOutput()
Construct an ByteArrayBufferOutput that will begin writing at the start of the containing WriteBuffer.

ByteArrayWriteBuffer.ByteArrayBufferOutput

public ByteArrayWriteBuffer.ByteArrayBufferOutput(int of)
Construct an ByteArrayBufferOutput that will begin writing at the specified offset within the containing WriteBuffer.
Parameters:
of - the offset at which to begin writing

Method Detail

writeShort

public void writeShort(int n)
                throws IOException
Writes a short value, comprised of the 16 low-order bits of the argument n; the 16 high-order bits of n are ignored.
Specified by:
writeShort in interface WriteBuffer.BufferOutput
Specified by:
writeShort in interface DataOutput
Overrides:
writeShort in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - the short to write (passed as an integer)
Throws:
IOException - if an I/O error occurs

writeInt

public void writeInt(int n)
              throws IOException
Writes an int value.
Specified by:
writeInt in interface WriteBuffer.BufferOutput
Specified by:
writeInt in interface DataOutput
Overrides:
writeInt in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - the int to write
Throws:
IOException - if an I/O error occurs

writeLong

public void writeLong(long l)
               throws IOException
Writes a long value.
Specified by:
writeLong in interface WriteBuffer.BufferOutput
Specified by:
writeLong in interface DataOutput
Overrides:
writeLong in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
l - the long to write
Throws:
IOException - if an I/O error occurs

writeBytes

public void writeBytes(String s)
                throws IOException
Writes the String s, but only the low-order byte from each character of the String is written.
Specified by:
writeBytes in interface WriteBuffer.BufferOutput
Specified by:
writeBytes in interface DataOutput
Overrides:
writeBytes in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs

writeChars

public void writeChars(String s)
                throws IOException
Writes the String s as a sequence of characters.
Specified by:
writeChars in interface WriteBuffer.BufferOutput
Specified by:
writeChars in interface DataOutput
Overrides:
writeChars in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs

writeUTF

public void writeUTF(String s)
              throws IOException
Writes the String s as a sequence of characters, but using UTF-8 encoding for the characters, and including the String length data so that the corresponding DataInput.readUTF() method can reconstitute a String from the written data.
Specified by:
writeUTF in interface WriteBuffer.BufferOutput
Specified by:
writeUTF in interface DataOutput
Overrides:
writeUTF in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - the String to write
Throws:
IOException - if an I/O error occurs

writeSafeUTF

public void writeSafeUTF(String s)
                  throws IOException
Write a variable-length encoded UTF packed String. The major differences between this implementation and DataOutput is that this implementation supports null values and is not limited to 64KB UTF-encoded values.

The binary format for a Safe UTF value is a "packed int" for the binary length followed by the UTF-encoded byte stream. The length is either -1 (indicating a null String) or in the range 0 .. Integer.MAX_VALUE (inclusive). The UTF-encoded portion uses a format identical to DataOutput.

Specified by:
writeSafeUTF in interface WriteBuffer.BufferOutput
Overrides:
writeSafeUTF in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
s - a String value to write; may be null
Throws:
IOException - if an I/O error occurs

writePackedInt

public void writePackedInt(int n)
                    throws IOException
Write an int value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 4-byte Big Endian binary format for int values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the int value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the int value. In this way, a 32-bit value is encoded into 1-5 bytes, depending on the magnitude of the int value being encoded.

Specified by:
writePackedInt in interface WriteBuffer.BufferOutput
Overrides:
writePackedInt in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
n - an int value to write
Throws:
IOException - if an I/O error occurs

writePackedLong

public void writePackedLong(long l)
                     throws IOException
Write a long value using a variable-length storage-format.

The format differs from DataOutput in that DataOutput always uses a fixed-length 8-byte Big Endian binary format for long values. The "packed" format includes a sign bit (0x40) and a continuation bit (0x80) in the first byte, followed by the least 6 significant bits of the long value. Subsequent bytes (each appearing only if the previous byte had its continuation bit set) include a continuation bit (0x80) and the next least 7 significant bits of the long value. In this way, a 64-bit value is encoded into 1-10 bytes, depending on the magnitude of the long value being encoded.

Specified by:
writePackedLong in interface WriteBuffer.BufferOutput
Overrides:
writePackedLong in class AbstractWriteBuffer.AbstractBufferOutput
Parameters:
l - a long value to write
Throws:
IOException - if an I/O error occurs

moveOffset

protected void moveOffset(int cb)
Move the offset within the stream forward.
Parameters:
cb - the number of bytes to advance the offset

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.0.0

E15725-01


Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.