aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/io/RandomAccessFile.java
diff options
context:
space:
mode:
authorMichael Koch <konqueror@gmx.de>2003-05-13 09:13:31 +0000
committerMichael Koch <mkoch@gcc.gnu.org>2003-05-13 09:13:31 +0000
commite48d8b88869563f85f2c83108257615f1cc73c76 (patch)
tree4f31beddee142afb687e3a3b376d800f72755434 /libjava/java/io/RandomAccessFile.java
parentaa8f1f579392001a71f98b59e7ead1ed3842f3f6 (diff)
downloadgcc-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.java33
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 ();
}
/**