JavaTM 2 Platform
Standard Ed. 5.0

java.io
类 RandomAccessFile

java.lang.Object
  继承者 java.io.RandomAccessFile
所有已实现的接口:
Closeable, DataInput, DataOutput

public class RandomAccessFile
extends Object
implements DataOutput, DataInput, Closeable

此类的实例支持对随机存取文件的读取和写入。随机存取文件的行为类似存储在文件系统中的一个大型字节数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机存取文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。

通常,如果此类中的所有读取例程在读取所需数量的字节之前已到达文件末尾,则抛出 EOFException(是一种 IOException)。如果由于某些原因无法读取任何字节,而不是在读取所需数量的字节之前已到达文件末尾,则抛出 IOException,而不是 EOFException。需要特别指出的是,如果流已被关闭,则可能抛出 IOException

从以下版本开始:
JDK1.0

构造方法摘要
RandomAccessFile(File file, String mode)
          创建从中读取和向其中写入(可选)的随机存取文件流,该文件由 File 参数指定。
RandomAccessFile(String name, String mode)
          创建从中读取和向其中写入(可选)的随机存取文件流,该文件具有指定名称。
 
方法摘要
 void close()
          关闭此随机存取文件流并释放与该流关联的所有系统资源。
 FileChannel getChannel()
          返回与此文件关联的惟一 FileChannel 对象。
 FileDescriptor getFD()
          返回与此流关联的不透明文件描述符对象。
 long getFilePointer()
          返回此文件中的当前偏移量。
 long length()
          返回此文件的长度。
 int read()
          从此文件中读取一个数据字节。
 int read(byte[] b)
          将最多 b.length 个数据字节从此文件读入字节数组。
 int read(byte[] b, int off, int len)
          将最多 len 个数据字节从此文件读入字节数组。
 boolean readBoolean()
          从此文件读取一个 boolean
 byte readByte()
          从此文件读取一个有符号的八位值。
 char readChar()
          从此文件读取一个 Unicode 字符。
 double readDouble()
          从此文件读取一个 double
 float readFloat()
          从此文件读取一个 float
 void readFully(byte[] b)
          将 b.length 个字节从此文件读入字节数组,并从当前文件指针开始。
 void readFully(byte[] b, int off, int len)
          将正好 len 个字节从此文件读入字节数组,并从当前文件指针开始。
 int readInt()
          从此文件读取一个有符号的 32 位整数。
 String readLine()
          从此文件读取文本的下一行。
 long readLong()
          从此文件读取一个有符号的 64 位整数。
 short readShort()
          从此文件读取一个有符号的 16 位数。
 int readUnsignedByte()
          从此文件读取一个无符号的八位数。
 int readUnsignedShort()
          从此文件读取一个无符号的 16 位数。
 String readUTF()
          从此文件读取一个字符串。
 void seek(long pos)
          设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
 void setLength(long newLength)
          设置此文件的长度。
 int skipBytes(int n)
          尝试跳过输入的 n 个字节以丢弃跳过的字节。
 void write(byte[] b)
          将 b.length 个字节从指定字节数组写入到此文件,并从当前文件指针开始。
 void write(byte[] b, int off, int len)
          将 len 个字节从指定字节数组写入到此文件,并从偏移量 off 处开始。
 void write(int b)
          向此文件写入指定的字节。
 void writeBoolean(boolean v)
          按单字节值将 boolean 写入该文件。
 void writeByte(int v)
          按单字节值将 byte 写入该文件。
 void writeBytes(String s)
          按字节序列将该字符串写入该文件。
 void writeChar(int v)
          按双字节值将 char 写入该文件,先写高字节。
 void writeChars(String s)
          按字符序列将一个字符串写入该文件。
 void writeDouble(double v)
          使用 Double 类中的 doubleToLongBits 方法将双精度参数转换为一个 long,然后按八字节数量将该 long 值写入该文件,先定高字节。
 void writeFloat(float v)
          使用 Float 类中的 floatToIntBits 方法将浮点参数转换为一个 int,然后按四字节数量将该 int 值写入该文件,先写高字节。
 void writeInt(int v)
          按四个字节将 int 写入该文件,先写高字节。
 void writeLong(long v)
          按八个字节将 long 写入该文件,先写高字节。
 void writeShort(int v)
          按两个字节将 short 写入该文件,先写高字节。
 void writeUTF(String str)
          使用 modified UTF-8 编码以与机器无关的方式将一个字符串写入该文件。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

RandomAccessFile

public RandomAccessFile(String name,
                        String mode)
                 throws FileNotFoundException
创建从中读取和向其中写入(可选)的随机存取文件流,该文件具有指定名称。将创建一个新的 FileDescriptor 对象来表示到文件的连接。

mode 参数指定用以打开文件的访问模式。允许的值及其含意如 RandomAccessFile(File,String) 构造方法所指定的那样。

如果存在安全管理器,则使用 name 作为其参数调用其 checkRead 方法,以查看是否允许对该文件进行读取访问。如果该模式允许写入,那么还使用 name 作为安全管理器的参数来调用其 checkWrite 方法,以查看是否允许对该文件进行写入访问。

参数:
name - 取决于系统的文件名
mode - 此存取 mode
抛出:
IllegalArgumentException - 如果此模式参数与 "r""rw""rws""rwd" 的其中一个不相等
FileNotFoundException - 如果该模式为 "r",但给定的字符串表示一个现有的常规文件,或者该模式以 "rw" 开头,但给定的字符串不表示一个现有的可写常规文件,而且无法创建具有该名称的新常规文件,或者在打开或创建该文件时发生一些其他错误
SecurityException - 如果存在安全管理器,并且其 checkRead 方法拒绝对该文件的读取访问,或者该模式为 "rw",并且该安全管理器的 checkWrite 方法拒绝对该文件的写入访问
另请参见:
SecurityException, SecurityManager.checkRead(java.lang.String), SecurityManager.checkWrite(java.lang.String)

RandomAccessFile

public RandomAccessFile(File file,
                        String mode)
                 throws FileNotFoundException
创建从中读取和向其中写入(可选)的随机存取文件流,该文件由 File 参数指定。将创建一个新的 FileDescriptor 对象来表示此文件的连接。

mode 参数指定用以打开文件的访问模式。允许的值及其含意为:

含意

"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException
"rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
"rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到基础存储设备。
"rwd"   打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到基础存储设备。
"rws""rwd" 模式的工作方式极其类似
FileChannel 类的 force(boolean) 方法,分别传递 truefalse 参数,除非它们始终应用于每个 I/O 操作,并因此通常更为高效。如果该文件位于本地存储设备上,那么当返回此类的一个方法的调用时,可以保证由该调用对此文件所做的所有更改均被写入该设备。这对确保在系统崩溃时不会丢失重要信息特别有用。如果该文件不在本地设备上,则无法提供这样的保证。

"rwd" 模式可用于减少执行的 I/O 操作数量。使用 "rwd" 仅要求更新要写入存储的文件的内容;使用 "rws" 要求更新要写入的文件内容及其元数据,这通常要求至少一个以上的低级别 I/O 操作。

如果存在安全管理器,则使用 file 参数的路径名作为其参数调用它的 checkRead 方法,以查看是否允许对该文件进行读取访问。如果该模式允许写入,那么还使用该路径参数调用该安全管理器的 checkWrite 方法,以查看是否允许对该文件进行写入访问。

参数:
file - 该文件对象
mode - 访问模式,如所述
抛出:
IllegalArgumentException - 如果此模式参数与 "r""rw""rws""rwd" 的其中一个不相等
FileNotFoundException - 如果该模式为 "r",但给定的文件对象不表示一个现有的常规文件,或者该模式以 "rw" 开头,但给定的文件对象不表示一个现有的可写常规文件,而且无法创建具有该名称的新常规文件,或者在打开或创建该文件时发生一些其他错误
SecurityException - 如果存在安全管理器,并且其 checkRead 方法拒绝对该文件的读取访问,或者该模式为 "rw",并且该安全管理器的 checkWrite 方法拒绝对该文件的写入访问
另请参见:
SecurityManager.checkRead(java.lang.String), SecurityManager.checkWrite(java.lang.String), FileChannel.force(boolean)
方法详细信息

getFD

public final FileDescriptor getFD()
                           throws IOException
返回与此流关联的不透明文件描述符对象。

返回:
与此流关联的不透明文件描述符对象。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
FileDescriptor

getChannel

public final FileChannel getChannel()
返回与此文件关联的惟一 FileChannel 对象。

返回通道的 java.nio.channels.FileChannel#position()position 将始终等于 getFilePointer 方法返回的此对象的文件指针偏移量。显式或者通过读取或写入字节来更改此对象的文件指针偏移量将更改通道的位置,反之亦然。通过此对象更改此文件的长度将更改通过文件通道看到的长度,反之亦然。

返回:
与此文件关联的文件通道
从以下版本开始:
1.4

read

public int read()
         throws IOException
从此文件中读取一个数据字节。以整数形式返回此字节,范围在 0 到 255 (0x00-0x0ff)。如果尚无输入可用,将阻塞此方法。

尽管 RandomAccessFile 不是 InputStream 的子类,但此方法的行为与 InputStreamInputStream.read() 方法完全一样。

返回:
下一个数据字节,如果已到达文件的末尾,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。如果已到达文件的末尾,则不抛出此异常。

read

public int read(byte[] b,
                int off,
                int len)
         throws IOException
将最多 len 个数据字节从此文件读入字节数组。在至少一个输入字节可用前,此方法一直阻塞。

尽管 RandomAccessFile 不是 InputStream 的子类,但此方法的行为与 InputStreamInputStream.read(byte[], int, int) 方法完全一样。

参数:
b - 读入数据的缓冲区。
off - 数据的初始偏移量。
len - 读取的最多字节数。
返回:
读入缓冲区的总字节数,如果由于已到达文件的末尾而不再有数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。

read

public int read(byte[] b)
         throws IOException
将最多 b.length 个数据字节从此文件读入字节数组。在至少一个输入字节可用前,此方法一直阻塞。

尽管 RandomAccessFile 不是 InputStream 的子类,但此方法的行为与 InputStreamInputStream.read(byte[]) 方法完全一样。

参数:
b - 将数据读入的缓冲区。
返回:
读入缓冲区的总字节数,如果由于已到达此文件的末尾而不再有数据,则返回 -1
抛出:
IOException - 如果发生 I/O 错误。

readFully

public final void readFully(byte[] b)
                     throws IOException
b.length 个字节从此文件读入字节数组,并从当前文件指针开始。此方法将从该文件重复读取,直到读取了请求数量的字节。在读取了请求数量的字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readFully
参数:
b - 将数据读入的缓冲区。
抛出:
EOFException - 如果在读取所有字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readFully

public final void readFully(byte[] b,
                            int off,
                            int len)
                     throws IOException
将正好 len 个字节从此文件读入字节数组,并从当前文件指针开始。此方法将从该文件重复读取,直到读取了请求数量的字节。在读取了请求数量的字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readFully
参数:
b - 读入数据的缓冲区。
off - 数据的初始偏移量。
len - 要读取的字节数。
抛出:
EOFException - 如果在读取所有字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

skipBytes

public int skipBytes(int n)
              throws IOException
尝试跳过输入的 n 个字节以丢弃跳过的字节。

此方法可能跳过一些较少数量的字节(可能包括零)。这可能由任意数量的条件引起;在跳过 n 个字节之前已到达文件的末尾只是其中的一种可能。此方法从不抛出 EOFException。返回跳过的实际字节数。如果 n 为负数,则不跳过任何字节。

指定者:
接口 DataInput 中的 skipBytes
参数:
n - 要跳过的字节数。
返回:
跳过的实际字节数。
抛出:
IOException - 如果发生 I/O 错误。

write

public void write(int b)
           throws IOException
向此文件写入指定的字节。从当前文件指针开始写入。

指定者:
接口 DataOutput 中的 write
参数:
b - 要写入的 byte
抛出:
IOException - 如果发生 I/O 错误。

write

public void write(byte[] b)
           throws IOException
b.length 个字节从指定字节数组写入到此文件,并从当前文件指针开始。

指定者:
接口 DataOutput 中的 write
参数:
b - 数据。
抛出:
IOException - 如果发生 I/O 错误。

write

public void write(byte[] b,
                  int off,
                  int len)
           throws IOException
len 个字节从指定字节数组写入到此文件,并从偏移量 off 处开始。

指定者:
接口 DataOutput 中的 write
参数:
b - 数据。
off - 数据的初始偏移量。
len - 要写入的字节数。
抛出:
IOException - 如果发生 I/O 错误。

getFilePointer

public long getFilePointer()
                    throws IOException
返回此文件中的当前偏移量。

返回:
到此文件开头的偏移量(以字节为单位),在该位置发生下一个读取或写入操作。
抛出:
IOException - 如果发生 I/O 错误。

seek

public void seek(long pos)
          throws IOException
设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。偏移量的设置可能会超出文件末尾。偏移量的设置超出文件末尾不会改变文件的长度。只有在偏移量的设置超出文件末尾的情况下对文件进行写入才会更改其长度。

参数:
pos - 从文件开头以字节为单位测量的偏移量位置,在该位置设置文件指针。
抛出:
IOException - 如果 pos 小于 0 或者发生 I/O 错误。

length

public long length()
            throws IOException
返回此文件的长度。

返回:
按字节测量的此文件的长度。
抛出:
IOException - 如果发生 I/O 错误。

setLength

public void setLength(long newLength)
               throws IOException
设置此文件的长度。

如果 length 方法返回的文件的现有长度大于 newLength 参数,则该文件将被截短。在此情况下,如果 getFilePointer 方法返回的文件偏移量大于 newLength,那么在返回此方法后,该偏移量将等于 newLength

如果 length 方法返回的文件的现有长度小于 newLength 参数,则该文件将被扩展。在此情况下,未定义文件扩展部分的内容。

参数:
newLength - 文件的所需长度
抛出:
IOException - 如果发生 I/O 错误
从以下版本开始:
1.2

close

public void close()
           throws IOException
关闭此随机存取文件流并释放与该流关联的所有系统资源。关闭的随机存取文件不能执行输入或输出操作,而且不能重新打开。

如果此文件具有一个关联的通道,那么该通道也会被关闭。

指定者:
接口 Closeable 中的 close
抛出:
IOException - 如果发生 I/O 错误。

readBoolean

public final boolean readBoolean()
                          throws IOException
从此文件读取一个 boolean。此方法从该文件的当前文件指针开始读取单个字节。值 0 表示 false。其他任何值表示 true。在读取了该字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readBoolean
返回:
读取的 boolean 值。
抛出:
EOFException - 如果此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readByte

public final byte readByte()
                    throws IOException
从此文件读取一个有符号的八位值。此方法从该文件的当前文件指针开始读取一个字节。如果读取的字节为 b,其中 0 <= b <= 255,则结果将是:
(byte)(b)
 

在读取了该字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readByte
返回:
以有符号的八位 byte 形式返回此文件的下一个字节。
抛出:
EOFException - 如果此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readUnsignedByte

public final int readUnsignedByte()
                           throws IOException
从此文件读取一个无符号的八位数。此方法从此文件的当前文件指针开始读取一个字节,并返回该字节。

在读取了该字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readUnsignedByte
返回:
此文件的下一个字节,解释为一个无符号的八位数。
抛出:
EOFException - 如果此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readShort

public final short readShort()
                      throws IOException
从此文件读取一个有符号的 16 位数。此方法从此文件的当前文件指针开始读取两个字节。如果按顺序读取的两个字节为 b1b2,其中两个值都在 0255之间(包含),则此结果等于:
(short)((b1 << 8) | b2)
 

在读取了这两个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readShort
返回:
此文件的下两个字节,解释为一个有符号的 16 位数。
抛出:
EOFException - 如果在读取两个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readUnsignedShort

public final int readUnsignedShort()
                            throws IOException
从此文件读取一个无符号的 16 位数。此方法从该文件的当前文件指针开始读取两个字节。如果按顺序读取的字节为 b1b2,其中 0 <= b1, b2 <= 255,则结果将等于:
(b1 << 8) | b2
 

在读取了这两个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readUnsignedShort
返回:
此文件的下两个字节,解释为一个无符号的 16 位整数。
抛出:
EOFException - 如果在读取两个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readChar

public final char readChar()
                    throws IOException
从此文件读取一个 Unicode 字符。此方法从该文件的当前文件指针开始读取两个字节。如果按顺序读取的字节为 b1b2,其中 0 <= b1, b2 <= 255,则结果将等于:
(char)((b1 << 8) | b2)
 

在读取了这两个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readChar
返回:
以 Unicode 字符形式返回此文件的下两个字节。
抛出:
EOFException - 如果在读取两个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readInt

public final int readInt()
                  throws IOException
从此文件读取一个有符号的 32 位整数。此方法从该文件的当前文件指针开始读取 4 个字节。如果按顺序读取的字节为 b1b2b3b4,其中 0 <= b1, b2, b3, b4 <= 255,则结果将等于:
(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
 

在读取了这四个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readInt
返回:
此文件的下四个字节,解释为一个 int
抛出:
EOFException - 如果在读取四个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readLong

public final long readLong()
                    throws IOException
从此文件读取一个有符号的 64 位整数。此方法从该文件的当前文件指针开始读取八个字节。如果按顺序读取的字节为 b1b2b3b4b5b6b7b8,其中:
0 <= b1, b2, b3, b4, b5, b6, b7, b8 <=255,
 

则结果将等于:

((long)b1 << 56) + ((long)b2 << 48)
+ ((long)b3 << 40) + ((long)b4 << 32)
     + ((long)b5 << 24) + ((long)b6 << 16)
     + ((long)b7 << 8) + b8
 

在读取了这八个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readLong
返回:
此文件的下八个字节,解释为一个 long
抛出:
EOFException - 如果在读取八个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。

readFloat

public final float readFloat()
                      throws IOException
从此文件读取一个 float。此方法从当前文件指针开始读取一个 int 值,类似于使用 readInt 方法,然后使用 Float 类中的 intBitsToFloat 方法将该 int 转换为一个 float

在读取了这四个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readFloat
返回:
此文件的下四个字节,解释为一个 float
抛出:
EOFException - 如果在读取四个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
readInt(), Float.intBitsToFloat(int)

readDouble

public final double readDouble()
                        throws IOException
从此文件读取一个 double。此方法从当前文件指针开始读取一个 long 值,类似于使用 readLong 方法,然后使用 Double 类中的 longBitsToDouble 方法将该 long 转换为一个 double

在读取了这八个字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readDouble
返回:
此文件的下八个字节,解释为一个 double
抛出:
EOFException - 如果在读取八个字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。
另请参见:
readLong(), Double.longBitsToDouble(long)

readLine

public final String readLine()
                      throws IOException
从此文件读取文本的下一行。此方法可以从该文件的当前文件指针处成功地读取字节,直到到达行结束符或文件的末尾。每个字节都转换为一个字符,方法是采用该字符的低八位字节值,并将该字符的高八位设置为零。因此,此方法不支持完整的 Unicode 字符集。

文本行由回车字符 ('\r') 和一个新行字符 ('\n') 结束,回车字符后面紧跟一个新行字符,或者是文件的末尾。不使用行结束符,并且在返回的字符串中不包括结束符。

在读取了一个新行字符、读取了一个回车符和它后面的字节(查看是否为一个新行),到达文件的末尾或者抛出异常之前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readLine
返回:
此文件文本的下一行,如果连一个字节也没有读取就已到达文件的末尾,则返回 null。
抛出:
IOException - 如果发生 I/O 错误。

readUTF

public final String readUTF()
                     throws IOException
从此文件读取一个字符串。该字符串已使用 UTF-8 修改版格式进行编码。

从当前文件指针开始读取前两个字节,类似于使用 readUnsignedShort。此值给出已编码字符串中随后的字节数,而不是结果字符串的长度。随后的字节然后解释为 UTF-8 修改版格式的字节编码字符,并转换为字符。

在读取了所有字节、检测到流的末尾或者抛出异常前,此方法一直阻塞。

指定者:
接口 DataInput 中的 readUTF
返回:
一个 Unicode 字符串。
抛出:
EOFException - 如果在读取所有字节之前此文件已到达末尾。
IOException - 如果发生 I/O 错误。
UTFDataFormatException - 如果这些字节不表示 Unicode 字符串的有效 UTF-8 修改版编码。
另请参见:
readUnsignedShort()

writeBoolean

public final void writeBoolean(boolean v)
                        throws IOException
按单字节值将 boolean 写入该文件。值 true 写出为值 (byte)1;值 false 写出为值 (byte)0。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeBoolean
参数:
v - 要写入的 boolean 值。
抛出:
IOException - 如果发生 I/O 错误。

writeByte

public final void writeByte(int v)
                     throws IOException
按单字节值将 byte 写入该文件。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeByte
参数:
v - 要写入的 byte 值。
抛出:
IOException - 如果发生 I/O 错误。

writeShort

public final void writeShort(int v)
                      throws IOException
按两个字节将 short 写入该文件,先写高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeShort
参数:
v - 要写入的 short
抛出:
IOException - 如果发生 I/O 错误。

writeChar

public final void writeChar(int v)
                     throws IOException
按双字节值将 char 写入该文件,先写高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeChar
参数:
v - 要写入的 char 值。
抛出:
IOException - 如果发生 I/O 错误。

writeInt

public final void writeInt(int v)
                    throws IOException
按四个字节将 int 写入该文件,先写高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeInt
参数:
v - 要写入的 int
抛出:
IOException - 如果发生 I/O 错误。

writeLong

public final void writeLong(long v)
                     throws IOException
按八个字节将 long 写入该文件,先写高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeLong
参数:
v - 要写入的 long
抛出:
IOException - 如果发生 I/O 错误。

writeFloat

public final void writeFloat(float v)
                      throws IOException
使用 Float 类中的 floatToIntBits 方法将浮点参数转换为一个 int,然后按四字节数量将该 int 值写入该文件,先写高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeFloat
参数:
v - 要写入的 float 值。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
Float.floatToIntBits(float)

writeDouble

public final void writeDouble(double v)
                       throws IOException
使用 Double 类中的 doubleToLongBits 方法将双精度参数转换为一个 long,然后按八字节数量将该 long 值写入该文件,先定高字节。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeDouble
参数:
v - 要写入的 double 值。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
Double.doubleToLongBits(double)

writeBytes

public final void writeBytes(String s)
                      throws IOException
按字节序列将该字符串写入该文件。该字符串中的每个字符均按顺序写出,并丢弃其高八位。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeBytes
参数:
s - 要写入的字节的字符串。
抛出:
IOException - 如果发生 I/O 错误。

writeChars

public final void writeChars(String s)
                      throws IOException
按字符序列将一个字符串写入该文件。每个字符均写入数据输出流,类似于使用 writeChar 方法。写入从文件指针的当前位置开始。

指定者:
接口 DataOutput 中的 writeChars
参数:
s - 要写入的 boolean 值。
抛出:
IOException - 如果发生 I/O 错误。
另请参见:
writeChar(int)

writeUTF

public final void writeUTF(String str)
                    throws IOException
使用 modified UTF-8 编码以与机器无关的方式将一个字符串写入该文件。

首先,把两个字节从文件的当前文件指针写入到此文件,类似于使用 writeShort 方法并给定要跟随的字节数。此值是实际写出的字节数,而不是该字符串的长度。在该长度之后,按顺序输出该字符串的每个字符,并对每个字符使用 UTF-8 修改版编码。

指定者:
接口 DataOutput 中的 writeUTF
参数:
str - 要写入的字符串。
抛出:
IOException - 如果发生 I/O 错误。

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策