Commit 10b33028 by Michael Koch Committed by Michael Koch

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

	* java/io/FileInputStream.java
	(getChannel): New implementation.
	* java/io/FileOutputStream.java
	(ch): New member variable.
	(getChannel): Implemented.
	* java/io/RandomAccessFile.java
	(RandomAccessFile): Throws FileNotFoundException instead of
	IOException.
	(getChannel): New method.
	(ch): New member variable.

From-SVN: r64609
parent 04b3370b
2003-03-20 Michael Koch <konqueror@gmx.de>
* java/io/FileInputStream.java
(getChannel): New implementation.
* java/io/FileOutputStream.java
(ch): New member variable.
(getChannel): Implemented.
* java/io/RandomAccessFile.java
(RandomAccessFile): Throws FileNotFoundException instead of
IOException.
(getChannel): New method.
(ch): New member variable.
2003-03-20 Michael Koch <konqueror@gmx.de>
* java/io/DataOutputStream.java,
java/io/File.java,
java/io/FileInputStream.java,
......
......@@ -34,6 +34,7 @@ exception statement from your version. */
package java.io;
import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/**
* @author Warren Levy <warrenl@cygnus.com>
......@@ -124,6 +125,12 @@ public class FileInputStream extends InputStream
public FileChannel getChannel ()
{
return ch;
synchronized (this)
{
if (ch == null)
ch = new FileChannelImpl (fd, false, this);
return ch;
}
}
}
......@@ -39,6 +39,7 @@ exception statement from your version. */
package java.io;
import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/**
* @author Tom Tromey <tromey@cygnus.com>
......@@ -147,11 +148,18 @@ public class FileOutputStream extends OutputStream
fd.close();
}
// Instance variables.
private FileDescriptor fd;
public FileChannel getChannel ()
{
return null;
synchronized (this)
{
if (ch == null)
ch = new FileChannelImpl (fd, true, this);
return ch;
}
}
// Instance variables.
private FileDescriptor fd;
private FileChannel ch;
}
......@@ -38,6 +38,9 @@ exception statement from your version. */
package java.io;
import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/**
* @author Tom Tromey <tromey@cygnus.com>
* @date September 25, 1998
......@@ -78,7 +81,8 @@ public class RandomAccessFile implements DataOutput, DataInput
return fd.length();
}
public RandomAccessFile (String fileName, String mode) throws IOException
public RandomAccessFile (String fileName, String mode)
throws FileNotFoundException
{
int fdmode;
if (mode.compareTo ("r") == 0)
......@@ -101,7 +105,7 @@ public class RandomAccessFile implements DataOutput, DataInput
in = new DataInputStream (new FileInputStream (fd));
}
public RandomAccessFile (File file, String mode) throws IOException
public RandomAccessFile (File file, String mode) throws FileNotFoundException
{
this (file.getPath(), mode);
}
......@@ -276,10 +280,21 @@ public class RandomAccessFile implements DataOutput, DataInput
out.writeUTF(s);
}
public FileChannel getChannel ()
{
synchronized (this)
{
if (ch == null)
ch = new FileChannelImpl (fd, true, this);
return ch;
}
}
// The underlying file.
private FileDescriptor fd;
// The corresponding input and output streams.
private DataOutputStream out;
private DataInputStream in;
private FileChannel ch;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment