org.knime.core.data.container
Class LongUTFDataOutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.knime.core.data.container.LongUTFDataOutputStream
All Implemented Interfaces:
Closeable, DataOutput, Flushable

public class LongUTFDataOutputStream
extends OutputStream
implements DataOutput

Wrapper class of a DataOutputStream that also allows to write UTF strings longer than 65535. This class delegates all method calls -- except for the writeUTF method -- and delegates it to an underlying output stream.

The writeUTF method of this class uses a longer header (10 bytes in total) to encode the utf length when processing long strings. This class has been written to overcome a limitation in java ... which is not going to be fixed, see also the sun bug report at http://bugs.sun.com/bugdatabase, bug id 4025564.

Author:
Bernd Wiswedel, University of Konstanz
See Also:
DataOutputStream.writeUTF(String)

Field Summary
(package private) static int USE_LONG_UTF
          Short that is written in front of UTF'ed byte stream whose length is longer than 65535 bytes.
 
Constructor Summary
LongUTFDataOutputStream(DataOutputStream output)
          Wraps the DataOutputStream argument and delegates all method calls (except the writeUTF method) to it.
 
Method Summary
 void close()
          
 void flush()
          
 void write(byte[] b)
          
 void write(byte[] b, int off, int len)
          
 void write(int b)
          
 void writeBoolean(boolean v)
          
 void writeByte(int v)
          
 void writeBytes(String s)
          
 void writeChar(int v)
          
 void writeChars(String s)
          
 void writeDouble(double v)
          
 void writeFloat(float v)
          
 void writeInt(int v)
          
 void writeLong(long v)
          
 void writeShort(int v)
          
 void writeUTF(String str)
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

USE_LONG_UTF

static final int USE_LONG_UTF
Short that is written in front of UTF'ed byte stream whose length is longer than 65535 bytes.

See Also:
Constant Field Values
Constructor Detail

LongUTFDataOutputStream

public LongUTFDataOutputStream(DataOutputStream output)
Wraps the DataOutputStream argument and delegates all method calls (except the writeUTF method) to it.

Parameters:
output - The output stream to wrap.
Throws:
NullPointerException - If the argument is null.
Method Detail

close

public void close()
           throws IOException

Specified by:
close in interface Closeable
Overrides:
close in class OutputStream
Throws:
IOException

flush

public void flush()
           throws IOException

Specified by:
flush in interface Flushable
Overrides:
flush in class OutputStream
Throws:
IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException

Specified by:
write in interface DataOutput
Overrides:
write in class OutputStream
Throws:
IOException

write

public void write(byte[] b)
           throws IOException

Specified by:
write in interface DataOutput
Overrides:
write in class OutputStream
Throws:
IOException

write

public void write(int b)
           throws IOException

Specified by:
write in interface DataOutput
Specified by:
write in class OutputStream
Throws:
IOException

writeBoolean

public void writeBoolean(boolean v)
                  throws IOException

Specified by:
writeBoolean in interface DataOutput
Throws:
IOException

writeByte

public void writeByte(int v)
               throws IOException

Specified by:
writeByte in interface DataOutput
Throws:
IOException

writeBytes

public void writeBytes(String s)
                throws IOException

Specified by:
writeBytes in interface DataOutput
Throws:
IOException

writeChar

public void writeChar(int v)
               throws IOException

Specified by:
writeChar in interface DataOutput
Throws:
IOException

writeChars

public void writeChars(String s)
                throws IOException

Specified by:
writeChars in interface DataOutput
Throws:
IOException

writeDouble

public void writeDouble(double v)
                 throws IOException

Specified by:
writeDouble in interface DataOutput
Throws:
IOException

writeFloat

public void writeFloat(float v)
                throws IOException

Specified by:
writeFloat in interface DataOutput
Throws:
IOException

writeInt

public void writeInt(int v)
              throws IOException

Specified by:
writeInt in interface DataOutput
Throws:
IOException

writeLong

public void writeLong(long v)
               throws IOException

Specified by:
writeLong in interface DataOutput
Throws:
IOException

writeShort

public void writeShort(int v)
                throws IOException

Specified by:
writeShort in interface DataOutput
Throws:
IOException

writeUTF

public void writeUTF(String str)
              throws IOException

Specified by:
writeUTF in interface DataOutput
Throws:
IOException


Copyright, 2003 - 2010. All rights reserved.
University of Konstanz, Germany.
Chair for Bioinformatics and Information Mining, Prof. Dr. Michael R. Berthold.
You may not modify, publish, transmit, transfer or sell, reproduce, create derivative works from, distribute, perform, display, or in any way exploit any of the content, in whole or in part, except as otherwise expressly permitted in writing by the copyright owner or as specified in the license file distributed with this product.