diff options
author | doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 13:29:13 +0000 |
---|---|---|
committer | doko <doko@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-06-28 13:29:13 +0000 |
commit | 1020ce5944edde4364baef4d371cd4f9b0dae721 (patch) | |
tree | 602cd7aa7c947386134690d8e0f6b53abcdeacb9 /libjava/classpath/java/io/DataInputStream.java | |
parent | 9f41ce98ce6f4f7c8ac5e2c4b6e5d27e10201015 (diff) | |
download | gcc-1020ce5944edde4364baef4d371cd4f9b0dae721.tar.gz |
libjava/
2008-06-28 Matthias Klose <doko@ubuntu.com>
Import GNU Classpath (classpath-0_97_2-release).
* Regenerate class and header files.
* Regenerate auto* files.
* gcj/javaprims.h: Define jobjectRefType.
* jni.cc (_Jv_JNI_GetObjectRefType): New (stub only).
(_Jv_JNIFunctions): Initialize GetObjectRefType.
* gnu/classpath/jdwp/VMVirtualMachine.java,
java/security/VMSecureRandom.java: Merge from classpath.
* HACKING: Fix typo.
* ChangeLog-2007: New file.
* configure.ac: Set JAVAC, pass --disable-regen-headers to classpath.
libjava/classpath/
2008-06-28 Matthias Klose <doko@ubuntu.com>
* m4/ac_prog_javac.m4: Disable check for JAVAC, when
not configured with --enable-java-maintainer-mode.
* aclocal.m4, configure: Regenerate.
* native/jni/gstreamer-peer/Makefile.am: Do not link with
libclasspathnative.
* native/jni/gstreamer-peer/Makefile.in: Regenerate.
* tools/Makefile.am, lib/Makefile.am: Use JAVAC for setting
JCOMPILER, drop flags not understood by gcj.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@137223 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/java/io/DataInputStream.java')
-rw-r--r-- | libjava/classpath/java/io/DataInputStream.java | 54 |
1 files changed, 49 insertions, 5 deletions
diff --git a/libjava/classpath/java/io/DataInputStream.java b/libjava/classpath/java/io/DataInputStream.java index d2604b51ffa..ad43498c8d7 100644 --- a/libjava/classpath/java/io/DataInputStream.java +++ b/libjava/classpath/java/io/DataInputStream.java @@ -1,5 +1,6 @@ /* DataInputStream.java -- FilteredInputStream that implements DataInput - Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005 Free Software Foundation + Copyright (C) 1998, 1999, 2000, 2001, 2003, 2005, 2008 + Free Software Foundation This file is part of GNU Classpath. @@ -349,7 +350,7 @@ public class DataInputStream extends FilterInputStream implements DataInput */ public final String readLine() throws IOException { - StringBuffer strb = new StringBuffer(); + StringBuilder strb = new StringBuilder(); while (true) { @@ -590,13 +591,56 @@ public class DataInputStream extends FilterInputStream implements DataInput public static final String readUTF(DataInput in) throws IOException { final int UTFlen = in.readUnsignedShort (); - byte[] buf = new byte [UTFlen]; + + return readUTF(in, UTFlen); + } + + /** + * This method is similar to <code>readUTF</code>, but the + * UTF-8 byte length is in 64 bits. + * This method is not public. It is used by <code>ObjectInputStream</code>. + * + * @return The <code>String</code> read + * + * @exception EOFException If end of file is reached before reading + * the String + * @exception UTFDataFormatException If the data is not in UTF-8 format + * @exception IOException If any other error occurs + * + * @see DataOutput#writeUTFLong + */ + final String readUTFLong () throws IOException + { + long l = readLong (); + if (l > Integer.MAX_VALUE) + throw new IOException("The string length > Integer.MAX_VALUE"); + final int UTFlen = (int)l; + return readUTF (this, UTFlen); + } + + /** + * This method performs the main task of <code>readUTF</code> and + * <code>readUTFLong</code>. + * + * @param in The <code>DataInput</code> source to read from + * + * @param len The UTF-8 byte length of the String to be read + * + * @return The String read from the source + * + * @exception IOException If an error occurs + * + * @see DataInput#readUTF + */ + private static final String readUTF(DataInput in, int len) throws IOException + { + byte[] buf = new byte [len]; // This blocks until the entire string is available rather than // doing partial processing on the bytes that are available and then // blocking. An advantage of the latter is that Exceptions // could be thrown earlier. The former is a bit cleaner. - in.readFully (buf, 0, UTFlen); + in.readFully (buf, 0, len); return convertFromUTF (buf); } @@ -703,7 +747,7 @@ public class DataInputStream extends FilterInputStream implements DataInput { // Give StringBuffer an initial estimated size to avoid // enlarge buffer frequently - StringBuffer strbuf = new StringBuffer (buf.length / 2 + 2); + StringBuilder strbuf = new StringBuilder (buf.length / 2 + 2); for (int i = 0; i < buf.length; ) { |