org.jboss.marshalling
Class UTFUtils

java.lang.Object
  extended by org.jboss.marshalling.UTFUtils

public final class UTFUtils
extends java.lang.Object

Handy utility methods for dealing with strings in the modified UTF-8 format.


Method Summary
static long getLongUTFLength(java.lang.String s)
          Get the number of bytes used by the modified UTF-8 encoded form of the given string.
static int getShortUTFLength(java.lang.String s)
          Get the number of bytes used by the modified UTF-8 encoded form of the given string.
static java.lang.String readUTFBytes(ByteInput input, int len)
          Read the given number of characters from the given byte input.
static java.lang.String readUTFBytesByByteCount(ByteInput input, long len)
          Read the given number of characters from the given byte input.
static java.lang.String readUTFZBytes(ByteInput input)
          Read a null-terminated modified UTF-8 string from the given byte input.
static void writeUTFBytes(ByteOutput output, java.lang.String s)
          Write the modified UTF-8 form of the given string to the given output.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getShortUTFLength

public static int getShortUTFLength(java.lang.String s)
                             throws java.io.UTFDataFormatException
Get the number of bytes used by the modified UTF-8 encoded form of the given string. If the length is greater than 65536, an exception is thrown.

Parameters:
s - the string
Returns:
the length
Throws:
java.io.UTFDataFormatException - if the string is longer than 65536 characters

getLongUTFLength

public static long getLongUTFLength(java.lang.String s)
Get the number of bytes used by the modified UTF-8 encoded form of the given string.

Parameters:
s - the string
Returns:
the length

writeUTFBytes

public static void writeUTFBytes(ByteOutput output,
                                 java.lang.String s)
                          throws java.io.IOException
Write the modified UTF-8 form of the given string to the given output.

Parameters:
output - the output to write to
s - the string
Throws:
java.io.IOException - if an I/O error occurs

readUTFBytes

public static java.lang.String readUTFBytes(ByteInput input,
                                            int len)
                                     throws java.io.IOException
Read the given number of characters from the given byte input. The length given is in characters, NOT in bytes.

Parameters:
input - the byte source
len - the number of characters to read
Returns:
the string
Throws:
java.io.IOException - if an I/O error occurs

readUTFBytesByByteCount

public static java.lang.String readUTFBytesByByteCount(ByteInput input,
                                                       long len)
                                                throws java.io.IOException
Read the given number of characters from the given byte input. The length given is in bytes.

Parameters:
input - the byte source
len - the number of bytes to read
Returns:
the string
Throws:
java.io.IOException - if an I/O error occurs

readUTFZBytes

public static java.lang.String readUTFZBytes(ByteInput input)
                                      throws java.io.IOException
Read a null-terminated modified UTF-8 string from the given byte input. Bytes are read until a 0 is found or until the end of the stream, whichever comes first.

Parameters:
input - the input
Returns:
the string
Throws:
java.io.IOException - if an I/O error occurs