2003�03-28 Michael Koch <konqueror@gmx.de>

* 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
This commit is contained in:
Michael Koch 2003-03-28 08:59:41 +00:00 committed by Michael Koch
parent f7670e7ba1
commit c54390c5a1
3 changed files with 48 additions and 20 deletions

View file

@ -1,3 +1,14 @@
2003­03-28 Michael Koch <konqueror@gmx.de>
* 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 <tromey@redhat.com> 2003-03-26 Tom Tromey <tromey@redhat.com>
* java/lang/natRuntime.cc (insertSystemProperties): Set * java/lang/natRuntime.cc (insertSystemProperties): Set

View file

@ -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 <code>FileDescriptor</code>.
*
* @author Aaron M. Renn <arenn@urbanophile.com>
* @author Tom Tromey <tromey@cygnus.com> * @author Tom Tromey <tromey@cygnus.com>
* @date September 24, 1998
*/ */
public class FileOutputStream extends OutputStream public class FileOutputStream extends OutputStream
{ {
@ -174,9 +177,15 @@ public class FileOutputStream extends OutputStream
public FileOutputStream (FileDescriptor fdObj) public FileOutputStream (FileDescriptor fdObj)
throws SecurityException 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(); SecurityManager s = System.getSecurityManager();
if (s != null) if (s != null)
s.checkWrite(fdObj); s.checkWrite(fdObj);
fd = fdObj; fd = fdObj;
} }
@ -221,9 +230,10 @@ public class FileOutputStream extends OutputStream
* *
* @exception IOException If an error occurs * @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 * @exception IOException If an error occurs
*/ */
public void write (byte[] b, int off, int len) public void write (byte[] buf, int offset, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException throws IOException
{ {
if (off < 0 || len < 0 || off + len > b.length) if (offset < 0
|| len < 0
|| offset + len > buf.length)
throw new ArrayIndexOutOfBoundsException (); 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 * A file channel must be created by first creating an instance of
* Input/Output/RandomAccessFile and invoking the getChannel() method on it. * 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

View file

@ -41,16 +41,22 @@ package java.io;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl; import gnu.java.nio.FileChannelImpl;
/**
* @author Tom Tromey <tromey@cygnus.com>
* @date September 25, 1998
*/
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3 /* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
* "The Java Language Specification", ISBN 0-201-63451-1 * "The Java Language Specification", ISBN 0-201-63451-1
* Status: Believe complete and correct to 1.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
* <code>DataInput</code> and <code>DataOutput</code> interfaces to allow
* the reading and writing of Java primitives.
*
* @author Aaron M. Renn <arenn@urbanophile.com>
* @author Tom Tromey <tromey@cygnus.com>
*/
public class RandomAccessFile implements DataOutput, DataInput public class RandomAccessFile implements DataOutput, DataInput
{ {