From: Michael Koch Date: Fri, 28 Mar 2003 08:59:41 +0000 (+0000) Subject: 2003�03-28 Michael Koch X-Git-Tag: releases/gcc-3.4.0~7625 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c54390c5a14d2c67e803a644bbf28ea6e5ab5af5;p=thirdparty%2Fgcc.git 2003�03-28 Michael Koch * java/io/FileOutputStream.java: Merged class documentation and authors with classpath. (FileOutputStream): Partly merged with classpath. (write): Merged with classpath. (getChannel): Make it synchronized instead of explicit block in this method. * java/io/RandomAccessFile.java: Merged class documentation and authors with classpath. From-SVN: r64963 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 78f09cb3d4dd..97dc76fa32e5 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,14 @@ +2003­03-28 Michael Koch + + * java/io/FileOutputStream.java: + Merged class documentation and authors with classpath. + (FileOutputStream): Partly merged with classpath. + (write): Merged with classpath. + (getChannel): Make it synchronized instead of explicit block in this + method. + * java/io/RandomAccessFile.java: + Merged class documentation and authors with classpath. + 2003-03-26 Tom Tromey * java/lang/natRuntime.cc (insertSystemProperties): Set diff --git a/libjava/java/io/FileOutputStream.java b/libjava/java/io/FileOutputStream.java index c0f8b268c4c7..1c75ccd04cd6 100644 --- a/libjava/java/io/FileOutputStream.java +++ b/libjava/java/io/FileOutputStream.java @@ -47,8 +47,11 @@ import gnu.java.nio.FileChannelImpl; */ /** + * This classes allows a stream of data to be written to a disk file or + * any open FileDescriptor. + * + * @author Aaron M. Renn * @author Tom Tromey - * @date September 24, 1998 */ public class FileOutputStream extends OutputStream { @@ -174,9 +177,15 @@ public class FileOutputStream extends OutputStream public FileOutputStream (FileDescriptor fdObj) throws SecurityException { + // Hmm, no other exception but this one to throw, but if the descriptor + // isn't valid, we surely don't have "permission" to write to it. + if (!fdObj.valid()) + throw new SecurityException("Invalid FileDescriptor"); + SecurityManager s = System.getSecurityManager(); if (s != null) s.checkWrite(fdObj); + fd = fdObj; } @@ -221,9 +230,10 @@ public class FileOutputStream extends OutputStream * * @exception IOException If an error occurs */ - public void write (byte[] b) throws IOException, NullPointerException + public void write (byte[] buf) + throws IOException { - fd.write (b, 0, b.length); + fd.write (buf, 0, buf.length); } /** @@ -236,12 +246,15 @@ public class FileOutputStream extends OutputStream * * @exception IOException If an error occurs */ - public void write (byte[] b, int off, int len) - throws IOException, NullPointerException, IndexOutOfBoundsException + public void write (byte[] buf, int offset, int len) + throws IOException { - if (off < 0 || len < 0 || off + len > b.length) + if (offset < 0 + || len < 0 + || offset + len > buf.length) throw new ArrayIndexOutOfBoundsException (); - fd.write (b, off, len); + + fd.write (buf, offset, len); } /** @@ -263,15 +276,13 @@ public class FileOutputStream extends OutputStream * A file channel must be created by first creating an instance of * Input/Output/RandomAccessFile and invoking the getChannel() method on it. */ - public FileChannel getChannel () + public synchronized FileChannel getChannel() { - synchronized (this) - { - if (ch == null) - ch = new FileChannelImpl (fd, true, this); + if (ch == null) + ch = new FileChannelImpl (fd, true, this); - return ch; - } + return ch; } -} +} // class FileOutputStream + diff --git a/libjava/java/io/RandomAccessFile.java b/libjava/java/io/RandomAccessFile.java index 91acb5d3d6cb..21838c5f0cc2 100644 --- a/libjava/java/io/RandomAccessFile.java +++ b/libjava/java/io/RandomAccessFile.java @@ -41,16 +41,22 @@ package java.io; import java.nio.channels.FileChannel; import gnu.java.nio.FileChannelImpl; -/** - * @author Tom Tromey - * @date September 25, 1998 - */ - /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 * "The Java Language Specification", ISBN 0-201-63451-1 * Status: Believe complete and correct to 1.1. */ +/** + * This class allows reading and writing of files at random locations. + * Most Java I/O classes are either pure sequential input or output. This + * class fulfills the need to be able to read the bytes of a file in an + * arbitrary order. In addition, this class implements the + * DataInput and DataOutput interfaces to allow + * the reading and writing of Java primitives. + * + * @author Aaron M. Renn + * @author Tom Tromey + */ public class RandomAccessFile implements DataOutput, DataInput {