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> 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/DataOutputStream.java,
java/io/File.java, java/io/File.java,
java/io/FileInputStream.java, java/io/FileInputStream.java,
......
...@@ -34,6 +34,7 @@ exception statement from your version. */ ...@@ -34,6 +34,7 @@ exception statement from your version. */
package java.io; package java.io;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/** /**
* @author Warren Levy <warrenl@cygnus.com> * @author Warren Levy <warrenl@cygnus.com>
...@@ -124,6 +125,12 @@ public class FileInputStream extends InputStream ...@@ -124,6 +125,12 @@ public class FileInputStream extends InputStream
public FileChannel getChannel () 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. */ ...@@ -39,6 +39,7 @@ exception statement from your version. */
package java.io; package java.io;
import java.nio.channels.FileChannel; import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/** /**
* @author Tom Tromey <tromey@cygnus.com> * @author Tom Tromey <tromey@cygnus.com>
...@@ -147,11 +148,18 @@ public class FileOutputStream extends OutputStream ...@@ -147,11 +148,18 @@ public class FileOutputStream extends OutputStream
fd.close(); fd.close();
} }
// Instance variables.
private FileDescriptor fd;
public FileChannel getChannel () 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. */ ...@@ -38,6 +38,9 @@ exception statement from your version. */
package java.io; package java.io;
import java.nio.channels.FileChannel;
import gnu.java.nio.FileChannelImpl;
/** /**
* @author Tom Tromey <tromey@cygnus.com> * @author Tom Tromey <tromey@cygnus.com>
* @date September 25, 1998 * @date September 25, 1998
...@@ -78,7 +81,8 @@ public class RandomAccessFile implements DataOutput, DataInput ...@@ -78,7 +81,8 @@ public class RandomAccessFile implements DataOutput, DataInput
return fd.length(); return fd.length();
} }
public RandomAccessFile (String fileName, String mode) throws IOException public RandomAccessFile (String fileName, String mode)
throws FileNotFoundException
{ {
int fdmode; int fdmode;
if (mode.compareTo ("r") == 0) if (mode.compareTo ("r") == 0)
...@@ -101,7 +105,7 @@ public class RandomAccessFile implements DataOutput, DataInput ...@@ -101,7 +105,7 @@ public class RandomAccessFile implements DataOutput, DataInput
in = new DataInputStream (new FileInputStream (fd)); 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); this (file.getPath(), mode);
} }
...@@ -276,10 +280,21 @@ public class RandomAccessFile implements DataOutput, DataInput ...@@ -276,10 +280,21 @@ public class RandomAccessFile implements DataOutput, DataInput
out.writeUTF(s); out.writeUTF(s);
} }
public FileChannel getChannel ()
{
synchronized (this)
{
if (ch == null)
ch = new FileChannelImpl (fd, true, this);
return ch;
}
}
// The underlying file. // The underlying file.
private FileDescriptor fd; private FileDescriptor fd;
// The corresponding input and output streams. // The corresponding input and output streams.
private DataOutputStream out; private DataOutputStream out;
private DataInputStream in; 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