diff options
author | Michael Koch <konqueror@gmx.de> | 2003-05-13 09:13:31 +0000 |
---|---|---|
committer | Michael Koch <mkoch@gcc.gnu.org> | 2003-05-13 09:13:31 +0000 |
commit | e48d8b88869563f85f2c83108257615f1cc73c76 (patch) | |
tree | 4f31beddee142afb687e3a3b376d800f72755434 /libjava/java/io/RandomAccessFile.java | |
parent | aa8f1f579392001a71f98b59e7ead1ed3842f3f6 (diff) | |
download | gcc-e48d8b88869563f85f2c83108257615f1cc73c76.zip gcc-e48d8b88869563f85f2c83108257615f1cc73c76.tar.gz gcc-e48d8b88869563f85f2c83108257615f1cc73c76.tar.bz2 |
2003-05-13 Michael Koch <konqueror@gmx.de>
* java/io/FileDescriptor.java
(SYNC): New constant.
(DSYNC): Likewise.
(getLength): Renamed from lenght() to match classpath's
FileDescriptor.java.
* java/io/RandomAccessFile.java
(RandomAccessFile): Removed unneeded mode check, implemented mode
"rws" and "rwd", merged documentation from classpath.
(setLength): Reformatted.
(length): Use new getLength() of FileDescriptor.
* java/io/natFileDescriptorEcos.cc
(getLength): Renamed from length().
* java/io/natFileDescriptorPosix.cc
(open): Implemented support for SYNC and DSYNC.
(seek): Use getLength() instead of length().
(getLength): Renamed from length().
* java/io/natFileDescriptorWin32.cc
(getLength): Renamed from length().
(seek): Use getLength() instead of length().
(available): Likewise.
* gnu/java/nio/natFileChannelImpl.cc
(size): Use getLength() instead of length().
From-SVN: r66755
Diffstat (limited to 'libjava/java/io/RandomAccessFile.java')
-rw-r--r-- | libjava/java/io/RandomAccessFile.java | 33 |
1 files changed, 20 insertions, 13 deletions
diff --git a/libjava/java/io/RandomAccessFile.java b/libjava/java/io/RandomAccessFile.java index 990b2dc..0ff2ff6 100644 --- a/libjava/java/io/RandomAccessFile.java +++ b/libjava/java/io/RandomAccessFile.java @@ -96,15 +96,17 @@ public class RandomAccessFile implements DataOutput, DataInput /** * This method initializes a new instance of <code>RandomAccessFile</code> * to read from the specified file name with the specified access mode. - * The access mode is either "r" for read only access or "rw" for read - * write access. + * The access mode is either "r" for read only access, "rw" for read + * write access, "rws" for synchronized read/write access of both + * content and metadata, or "rwd" for read/write access + * where only content is required to be synchronous. * <p> * Note that a <code>SecurityManager</code> check is made prior to * opening the file to determine whether or not this file is allowed to * be read or written. * * @param fileName The name of the file to read and/or write - * @param mode "r" for read only or "rw" for read-write access to the file + * @param mode "r", "rw", "rws", or "rwd" * * @exception IllegalArgumentException If <code>mode</code> has an * illegal value @@ -115,16 +117,21 @@ public class RandomAccessFile implements DataOutput, DataInput public RandomAccessFile (String fileName, String mode) throws FileNotFoundException { - // Check the mode - if (!mode.equals("r") && !mode.equals("rw") && !mode.equals("rws") && - !mode.equals("rwd")) - throw new IllegalArgumentException("Bad mode value: " + mode); - int fdmode; - if (mode.compareTo ("r") == 0) + if (mode.equals("r")) fdmode = FileDescriptor.READ; - else if (mode.compareTo ("rw") == 0) + else if (mode.equals("rw")) fdmode = FileDescriptor.READ | FileDescriptor.WRITE; + else if (mode.equals("rws")) + { + fdmode = (FileDescriptor.READ | FileDescriptor.WRITE + | FileDescriptor.SYNC); + } + else if (mode.equals("rwd")) + { + fdmode = (FileDescriptor.READ | FileDescriptor.WRITE + | FileDescriptor.DSYNC); + } else throw new IllegalArgumentException ("invalid mode: " + mode); @@ -197,9 +204,9 @@ public class RandomAccessFile implements DataOutput, DataInput * * @exception IOException If an error occurs */ - public void setLength (long pos) throws IOException + public void setLength (long newLen) throws IOException { - fd.setLength(pos); + fd.setLength (newLen); } /** @@ -211,7 +218,7 @@ public class RandomAccessFile implements DataOutput, DataInput */ public long length () throws IOException { - return fd.length(); + return fd.getLength (); } /** |