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

* java/io/FileInputStream.java
	(read): Renamed b to buf and off to offset.
	* java/io/FileOutputStream.java
	(ch): Documentation added.
	(FileOutputStream): Documentation added.
	(getFD): Documentation added.
	(write): Documentation added.
	(close): Documentation added.
	(getChannel): Documentation added.

From-SVN: r64845
This commit is contained in:
Michael Koch 2003-03-25 13:06:52 +00:00 committed by Michael Koch
parent d2fc77254d
commit a62abb9125
3 changed files with 137 additions and 12 deletions

View File

@ -1,3 +1,15 @@
2003-03-25 Michael Koch <konqueror@gmx.de>
* java/io/FileInputStream.java
(read): Renamed b to buf and off to offset.
* java/io/FileOutputStream.java
(ch): Documentation added.
(FileOutputStream): Documentation added.
(getFD): Documentation added.
(write): Documentation added.
(close): Documentation added.
(getChannel): Documentation added.
2003-03-24 Michael Koch <konqueror@gmx.de>
* java/io/DataOutputStream.java

View File

@ -52,7 +52,6 @@ import gnu.java.nio.FileChannelImpl;
*
* @author Aaron M. Renn <arenn@urbanophile.com>
* @author Warren Levy <warrenl@cygnus.com>
* @date October 28, 1998.
*/
public class FileInputStream extends InputStream
{
@ -224,9 +223,9 @@ public class FileInputStream extends InputStream
*
* @exception IOException If an error occurs.
*/
public int read(byte[] b) throws IOException
public int read(byte[] buf) throws IOException
{
return fd.read(b, 0, b.length);
return read(buf, 0, buf.length);
}
/**
@ -248,12 +247,14 @@ public class FileInputStream extends InputStream
*
* @exception IOException If an error occurs.
*/
public int read(byte[] b, int off, int len) throws IOException
public int read(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();
return fd.read(b, off, len);
return fd.read(buf, offset, len);
}
/**

View File

@ -52,10 +52,29 @@ import gnu.java.nio.FileChannelImpl;
*/
public class FileOutputStream extends OutputStream
{
// Instance variables.
private FileDescriptor fd;
private FileChannel ch;
private FileChannel ch; /* cached associated file-channel */
/**
* This method initializes a <code>FileOutputStream</code> object to write
* to the named file. The file is created if it does not exist, and
* the bytes written are written starting at the beginning of the file if
* the <code>append</code> argument is <code>false</code> or at the end
* of the file if the <code>append</code> argument is true.
* <p>
* Before opening a file, a security check is performed by calling the
* <code>checkWrite</code> method of the <code>SecurityManager</code> (if
* one exists) with the name of the file to be opened. An exception is
* thrown if writing is not allowed.
*
* @param name The name of the file this stream should write to
* @param append <code>true</code> to append bytes to the end of the file,
* or <code>false</code> to write bytes to the beginning
*
* @exception SecurityException If write access to the file is not allowed
* @exception FileNotFoundException If a non-security error occurs
*/
public FileOutputStream (String path, boolean append)
throws SecurityException, FileNotFoundException
{
@ -67,12 +86,43 @@ public class FileOutputStream extends OutputStream
: FileDescriptor.WRITE));
}
/**
* This method initializes a <code>FileOutputStream</code> object to write
* to the named file. The file is created if it does not exist, and
* the bytes written are written starting at the beginning of the file.
* <p>
* Before opening a file, a security check is performed by calling the
* <code>checkWrite</code> method of the <code>SecurityManager</code> (if
* one exists) with the name of the file to be opened. An exception is
* thrown if writing is not allowed.
*
* @param name The name of the file this stream should write to
*
* @exception SecurityException If write access to the file is not allowed
* @exception FileNotFoundException If a non-security error occurs
*/
public FileOutputStream (String path)
throws SecurityException, FileNotFoundException
{
this (path, false);
}
/**
* This method initializes a <code>FileOutputStream</code> object to write
* to the specified <code>File</code> object. The file is created if it
* does not exist, and the bytes written are written starting at the
* beginning of the file.
* <p>
* Before opening a file, a security check is performed by calling the
* <code>checkWrite</code> method of the <code>SecurityManager</code> (if
* one exists) with the name of the file to be opened. An exception is
* thrown if writing is not allowed.
*
* @param file The <code>File</code> object this stream should write to
*
* @exception SecurityException If write access to the file is not allowed
* @exception FileNotFoundException If a non-security error occurs
*/
public FileOutputStream (File file)
throws SecurityException, FileNotFoundException
{
@ -99,12 +149,28 @@ public class FileOutputStream extends OutputStream
* @exception SecurityException If write access to the file is not allowed
* @exception FileNotFoundException If a non-security error occurs
*/
public
FileOutputStream(File file, boolean append) throws FileNotFoundException
public FileOutputStream (File file, boolean append)
throws FileNotFoundException
{
this(file.getPath(), append);
this (file.getPath(), append);
}
/**
* This method initializes a <code>FileOutputStream</code> object to write
* to the file represented by the specified <code>FileDescriptor</code>
* object. This method does not create any underlying disk file or
* reposition the file pointer of the given descriptor. It assumes that
* this descriptor is ready for writing as is.
* <p>
* Before opening a file, a security check is performed by calling the
* <code>checkWrite</code> method of the <code>SecurityManager</code> (if
* one exists) with the specified <code>FileDescriptor</code> as an argument.
* An exception is thrown if writing is not allowed.
*
* @param file The <code>FileDescriptor</code> this stream should write to
*
* @exception SecurityException If write access to the file is not allowed
*/
public FileOutputStream (FileDescriptor fdObj)
throws SecurityException
{
@ -120,6 +186,14 @@ public class FileOutputStream extends OutputStream
// mentioned in the JCL.
}
/**
* This method returns a <code>FileDescriptor</code> object representing
* the file that is currently being written to
*
* @return A <code>FileDescriptor</code> object for this stream
*
* @exception IOException If an error occurs
*/
public final FileDescriptor getFD () throws IOException
{
if (! fd.valid())
@ -127,16 +201,41 @@ public class FileOutputStream extends OutputStream
return fd;
}
/**
* This method writes a single byte of data to the file.
*
* @param b The byte of data to write, passed as an <code>int</code>
*
* @exception IOException If an error occurs
*/
public void write (int b) throws IOException
{
fd.write (b);
}
/**
* This method writes all the bytes in the specified array to the
* file.
*
* @param buf The array of bytes to write to the file
*
* @exception IOException If an error occurs
*/
public void write (byte[] b) throws IOException, NullPointerException
{
fd.write (b, 0, b.length);
}
/**
* This method writes <code>len</code> bytes from the byte array
* <code>buf</code> to the file starting at index <code>offset</code>.
*
* @param buf The array of bytes to write to the file
* @param offset The offset into the array to start writing bytes from
* @param len The number of bytes to write to the file
*
* @exception IOException If an error occurs
*/
public void write (byte[] b, int off, int len)
throws IOException, NullPointerException, IndexOutOfBoundsException
{
@ -145,12 +244,25 @@ public class FileOutputStream extends OutputStream
fd.write (b, off, len);
}
/**
* This method closes the underlying file. Any further attempts to
* write to this stream will likely generate an exception since the
* file is closed.
*
* @exception IOException If an error occurs
*/
public void close () throws IOException
{
if (fd.valid())
fd.close();
}
/**
* This method creates a java.nio.channels.FileChannel.
* Nio does not allow one to create a file channel directly.
* 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 ()
{
synchronized (this)