模块 java.base
 java.io

类 RandomAccessFile

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

public class RandomAccessFile extends Object implements DataOutput , DataInput , Closeable
此类的实例支持读取和写入随机访问文件。随机访问文件的行为类似于存储在文件系统中的大量字节。有一种游标,或隐含数组的索引,称为 file pointer ;输入操作从文件指针开始读取字节,并将文件指针前进到读取的字节之后。如果随机访问文件是以读/写方式创建的,那么也可以进行输出操作;输出操作从文件指针开始写入字节,并将文件指针前进到写入的字节之后。写入隐含数组当前末尾的输出操作会导致数组扩展。文件指针可以通过getFilePointer方法读取,通过seek方法设置。

对于此类中的所有读取例程,如果在读取所需字节数之前到达文件末尾,则通常会抛出 EOFException(这是一种 IOException)。如果由于文件结束以外的任何原因无法读取任何字节,则会抛出 EOFException 以外的 IOException。特别是,如果流已关闭,可能会抛出 IOException

自从:
1.0
  • 构造方法总结

    构造方法
    构造方法
    描述
    创建一个随机访问文件流,以读取并可选地写入由 File 参数指定的文件。
    创建一个随机访问文件流以从具有指定名称的文件中读取,并可选择写入。
  • 方法总结

    修饰符和类型
    方法
    描述
    void
    关闭此随机访问文件流并释放与该流关联的所有系统资源。
    返回与此文件关联的唯一 FileChannel 对象。
    返回与此流关联的不透明文件描述符对象。
    long
    返回此文件中的当前偏移量。
    long
    返回此文件的长度。
    int
    read()
    从此文件中读取一个字节的数据。
    int
    read(byte[] b)
    从此文件中读取最多 b.length 字节的数据到字节数组中。
    int
    read(byte[] b, int off, int len)
    从此文件中读取最多 len 字节的数据到字节数组中。
    final boolean
    从此文件中读取 boolean
    final byte
    从此文件中读取一个带符号的八位值。
    final char
    从此文件中读取一个字符。
    final double
    从此文件中读取 double
    final float
    从该文件中读取 float
    final void
    readFully(byte[] b)
    从当前文件指针开始,将 b.length 个字节从此文件读入字节数组。
    final void
    readFully(byte[] b, int off, int len)
    从当前文件指针开始,从该文件中准确读取 len 个字节到字节数组中。
    final int
    从此文件中读取带符号的 32 位整数。
    final String
    从此文件中读取下一行文本。
    final long
    从此文件中读取带符号的 64 位整数。
    final short
    从此文件中读取带符号的 16 位数字。
    final int
    从此文件中读取一个无符号的八位数字。
    final int
    从此文件中读取一个无符号的 16 位数字。
    final String
    从此文件中读入一个字符串。
    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)
    从偏移量 off 开始的指定字节数组中将 len 字节写入此文件。
    void
    write(int b)
    将指定字节写入此文件。
    final void
    writeBoolean(boolean v)
    boolean 作为单字节值写入文件。
    final void
    writeByte(int v)
    byte 作为单字节值写入文件。
    final void
    将字符串作为字节序列写入文件。
    final void
    writeChar(int v)
    char 作为两字节值写入文件,高字节在前。
    final void
    将字符串作为字符序列写入文件。
    final void
    writeDouble(double v)
    使用类 Double 中的 doubleToLongBits 方法将双精度参数转换为 long,然后将该 long 值作为八字节量写入文件,高字节在前。
    final void
    writeFloat(float v)
    使用类 Float 中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为四字节量写入文件,高字节在前。
    final void
    writeInt(int v)
    int 作为四个字节写入文件,高字节在前。
    final void
    writeLong(long v)
    long 作为八个字节写入文件,高字节在前。
    final void
    writeShort(int v)
    short 作为两个字节写入文件,高字节在前。
    final void
    以与机器无关的方式使用 修改后的 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) 构造函数指定的一样。

      如果有安全管理器,它的 checkRead 方法将被调用,并将 name 参数作为其参数,以查看是否允许对该文件进行读取访问。如果模式允许写入,安全管理器的 checkWrite 方法也会以 name 参数作为参数调用,以查看是否允许对该文件进行写入访问。

      参数:
      name - 系统相关的文件名
      mode - 访问 模式
      抛出:
      IllegalArgumentException - 如果模式参数不等于 "r""rw""rws""rwd" 之一
      FileNotFoundException - 如果模式是 "r" 但给定的字符串不表示现有的常规文件,或者如果模式以 "rw" 开头但给定的字符串不表示现有的可写常规文件并且无法创建该名称的新常规文件,或者如果在打开或创建文件时出现其他错误
      SecurityException - 如果安全管理器存在且其 checkRead 方法拒绝对文件的读访问或模式为 "rw" 并且安全管理器的 checkWrite 方法拒绝对文件的写访问
      参见:
    • RandomAccessFile

      public RandomAccessFile(File  file, String  mode) throws FileNotFoundException
      创建一个随机访问文件流,以读取并可选地写入由 File 参数指定的文件。创建一个新的 FileDescriptor 对象来表示此文件连接。

      mode 参数指定打开文件的访问模式。允许的值及其含义是:

      访问模式允许值和含义
      Value 意义
      "r" 打开仅供阅读。调用结果对象的任何 write 方法将导致抛出 IOException
      "rw" 打开阅读和写作。如果该文件尚不存在,则会尝试创建它。
      "rws" 以读写方式打开,与 "rw" 一样,还要求对文件内容或元数据的每次更新都同步写入底层存储设备。
      "rwd" 以读写方式打开,与 "rw" 一样,还要求对文件内容的每次更新都同步写入底层存储设备。
      "rws""rwd" 模式的工作方式与 FileChannel 类的 force(boolean) 方法非常相似,分别传递 truefalse 的参数,只是它们始终适用于每个 I/O 操作,因此通常效率更高。如果文件驻留在本地存储设备上,则当调用此类的方法返回时,可以保证该调用对文件所做的所有更改都已写入该设备。这对于确保在系统崩溃时不会丢失关键信息很有用。如果文件不驻留在本地设备上,则不提供此类保证。

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

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

      参数:
      file - 文件对象
      mode - 访问模式,如 多于 所述
      抛出:
      IllegalArgumentException - 如果模式参数不等于 "r""rw""rws""rwd" 之一
      FileNotFoundException - 如果模式是 "r" 但给定的文件对象不表示现有的常规文件,或者如果模式以 "rw" 开头但给定的文件对象不表示现有的可写常规文件并且该名称的新常规文件不能正在创建,或者如果在打开或创建文件时出现其他错误
      SecurityException - 如果安全管理器存在且其 checkRead 方法拒绝对文件的读访问或模式为 "rw" 并且安全管理器的 checkWrite 方法拒绝对文件的写访问
      参见:
  • 方法详情

    • getFD

      public final FileDescriptor  getFD() throws IOException
      返回与此流关联的不透明文件描述符对象。
      返回:
      与此流关联的文件描述符对象。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • getChannel

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

      返回通道的 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 - 写入数据的数组 b 中的起始偏移量。
      len - 读取的最大字节数。
      返回:
      读入缓冲区的总字节数,如果因为已到达文件末尾而没有更多数据,则为 -1
      抛出:
      IOException - 如果第一个字节由于文件末尾以外的任何原因无法读取,或者如果随机访问文件已关闭,或者如果发生其他一些 I/O 错误。
      NullPointerException - 如果 bnull
      IndexOutOfBoundsException - 如果 off 为负,len 为负,或者 len 大于 b.length - off
    • read

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

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

      参数:
      b - 读取数据的缓冲区。
      返回:
      读入缓冲区的字节总数,如果因为已到达此文件的末尾而没有更多数据,则为 -1
      抛出:
      IOException - 如果第一个字节由于文件末尾以外的任何原因无法读取,或者如果随机访问文件已关闭,或者如果发生其他一些 I/O 错误。
      NullPointerException - 如果 bnull
    • readFully

      public final void readFully(byte[] b) throws IOException
      从当前文件指针开始,将 b.length 个字节从此文件读入字节数组。此方法从文件中重复读取,直到读取到请求的字节数。此方法会阻塞,直到读取了请求的字节数、检测到流的末尾或抛出异常。
      指定者:
      readFully 在接口 DataInput
      参数:
      b - 读取数据的缓冲区。
      抛出:
      NullPointerException - 如果 bnull
      EOFException - 如果此文件在读取所有字节之前到达末尾。
      IOException - 如果发生 I/O 错误。
    • readFully

      public final void readFully(byte[] b, int off, int len) throws IOException
      从当前文件指针开始,从该文件中准确读取 len 个字节到字节数组中。此方法从文件中重复读取,直到读取到请求的字节数。此方法会阻塞,直到读取了请求的字节数、检测到流的末尾或抛出异常。
      指定者:
      readFully 在接口 DataInput
      参数:
      b - 读取数据的缓冲区。
      off - 数据数组 b 的起始偏移量。
      len - 要读取的字节数。
      抛出:
      NullPointerException - 如果 bnull
      IndexOutOfBoundsException - 如果 off 为负,len 为负,或 len 大于 b.length - off
      EOFException - 如果此文件在读取所有字节之前到达末尾。
      IOException - 如果发生 I/O 错误。
    • skipBytes

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

      此方法可能会跳过一些较小数量的字节,可能为零。这可能是由多种情况中的任何一种引起的;在跳过 n 字节之前到达文件末尾只是一种可能性。此方法从不抛出 EOFException 。返回实际跳过的字节数。如果 n 为负,则不会跳过任何字节。

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

      public void write(int b) throws IOException
      将指定字节写入此文件。写入从当前文件指针开始。
      指定者:
      write 在接口 DataOutput
      参数:
      b - 要写入的 byte
      抛出:
      IOException - 如果发生 I/O 错误。
    • write

      public void write(byte[] b) throws IOException
      从当前文件指针开始,将指定字节数组中的 b.length 字节写入此文件。
      指定者:
      write 在接口 DataOutput
      参数:
      b - 数据。
      抛出:
      IOException - 如果发生 I/O 错误。
    • write

      public void write(byte[] b, int off, int len) throws IOException
      从偏移量 off 开始的指定字节数组中将 len 字节写入此文件。
      指定者:
      write 在接口 DataOutput
      参数:
      b - 数据。
      off - 数据中的起始偏移量。
      len - 要写入的字节数。
      抛出:
      IOException - 如果发生 I/O 错误。
      IndexOutOfBoundsException - 如果 off 为负,len 为负,或者 len 大于 b.length - off
    • 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
      关闭此随机访问文件流并释放与该流关联的所有系统资源。关闭的随机访问文件无法执行输入或输出操作,也无法重新打开。

      如果此文件有关联的通道,则该通道也会关闭。

      指定者:
      close 在接口 AutoCloseable
      指定者:
      close 在接口 Closeable
      抛出:
      IOException - 如果发生 I/O 错误。
    • readBoolean

      public final boolean readBoolean() throws IOException
      从此文件中读取 boolean。此方法从当前文件指针开始从文件中读取单个字节。 0 的值表示 false 。任何其他值表示 true 。此方法会阻塞,直到读取字节、检测到流的结尾或抛出异常。
      指定者:
      readBoolean 在接口 DataInput
      返回:
      读取的 boolean 值。
      抛出:
      EOFException - 如果此文件已结束。
      IOException - 如果发生 I/O 错误。
    • readByte

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

      此方法会阻塞,直到读取字节、检测到流的结尾或抛出异常。

      指定者:
      readByte 在接口 DataInput
      返回:
      此文件的下一个字节作为带符号的八位 byte
      抛出:
      EOFException - 如果此文件已结束。
      IOException - 如果发生 I/O 错误。
    • readUnsignedByte

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

      此方法会阻塞,直到读取字节、检测到流的结尾或抛出异常。

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

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

      此方法会阻塞,直到读取两个字节、检测到流的结尾或抛出异常。

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

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

      此方法会阻塞,直到读取两个字节、检测到流的结尾或抛出异常。

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

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

      此方法会阻塞,直到读取两个字节、检测到流的结尾或抛出异常。

      指定者:
      readChar 在接口 DataInput
      返回:
      该文件的下两个字节,解释为 char
      抛出:
      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
       

      此方法会阻塞,直到读取四个字节、检测到流的结尾或抛出异常。

      指定者:
      readInt 在接口 DataInput
      返回:
      此文件的下四个字节,解释为 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
       

      此方法会阻塞,直到读取到八个字节、检测到流的结尾或抛出异常。

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

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

      此方法会阻塞,直到读取四个字节、检测到流的结尾或抛出异常。

      指定者:
      readFloat 在接口 DataInput
      返回:
      该文件的下四个字节,解释为 float
      抛出:
      EOFException - 如果此文件在读取四个字节之前到达末尾。
      IOException - 如果发生 I/O 错误。
      参见:
    • readDouble

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

      此方法会阻塞,直到读取到八个字节、检测到流的结尾或抛出异常。

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

      public final String  readLine() throws IOException
      从此文件中读取下一行文本。此方法连续从文件中读取字节,从当前文件指针开始,直到到达行终止符或文件末尾。通过为字符的低八位获取字节的值并将字符的高八位设置为零,每个字节被转换为一个字符。因此,此方法不支持完整的 Unicode 字符集。

      一行文本由回车符 ('\r')、换行符 ('\n')、紧跟换行符的回车符或文件末尾终止。行终止字符被丢弃,并且不包括在返回的字符串中。

      此方法会阻塞,直到读取到换行符、读取回车符及其后的字节(以查看它是否是换行符)、到达文件末尾或抛出异常。

      指定者:
      readLine 在接口 DataInput
      返回:
      此文件的下一行文本,如果甚至在读取一个字节之前遇到文件末尾,则返回 null。
      抛出:
      IOException - 如果发生 I/O 错误。
    • readUTF

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

      前两个字节被读取,从当前文件指针开始,就像 readUnsignedShort 一样。此值给出编码字符串中的后续字节数,而不是结果字符串的长度。随后的字节被解释为修改后的 UTF-8 格式的字节编码字符,并被转换为字符。

      此方法会阻塞,直到读取所有字节、检测到流的结尾或抛出异常。

      指定者:
      readUTF 在接口 DataInput
      返回:
      一个 Unicode 字符串。
      抛出:
      EOFException - 如果此文件在读取所有字节之前到达末尾。
      IOException - 如果发生 I/O 错误。
      UTFDataFormatException - 如果字节不代表 Unicode 字符串的有效修改后的 UTF-8 编码。
      参见:
    • writeBoolean

      public final void writeBoolean(boolean v) throws IOException
      boolean 作为单字节值写入文件。值 true 被写为值 (byte)1 ;值 false 被写为值 (byte)0 。写入从文件指针的当前位置开始。
      指定者:
      writeBoolean 在接口 DataOutput
      参数:
      v - 要写入的 boolean 值。
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeByte

      public final void writeByte(int v) throws IOException
      byte 作为单字节值写入文件。写入从文件指针的当前位置开始。
      指定者:
      writeByte 在接口 DataOutput
      参数:
      v - 要写入的 byte 值。
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeShort

      public final void writeShort(int v) throws IOException
      short 作为两个字节写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeShort 在接口 DataOutput
      参数:
      v - 要写入的 short
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeChar

      public final void writeChar(int v) throws IOException
      char 作为两字节值写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeChar 在接口 DataOutput
      参数:
      v - 要写入的 char 值。
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeInt

      public final void writeInt(int v) throws IOException
      int 作为四个字节写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeInt 在接口 DataOutput
      参数:
      v - 要写入的 int
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeLong

      public final void writeLong(long v) throws IOException
      long 作为八个字节写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeLong 在接口 DataOutput
      参数:
      v - 要写入的 long
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeFloat

      public final void writeFloat(float v) throws IOException
      使用类 Float 中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为四字节量写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeFloat 在接口 DataOutput
      参数:
      v - 要写入的 float 值。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • writeDouble

      public final void writeDouble(double v) throws IOException
      使用类 Double 中的 doubleToLongBits 方法将双精度参数转换为 long,然后将该 long 值作为八字节量写入文件,高字节在前。写入从文件指针的当前位置开始。
      指定者:
      writeDouble 在接口 DataOutput
      参数:
      v - 要写入的 double 值。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • writeBytes

      public final void writeBytes(String  s) throws IOException
      将字符串作为字节序列写入文件。字符串中的每个字符通过丢弃其高八位按顺序写出。写入从文件指针的当前位置开始。
      指定者:
      writeBytes 在接口 DataOutput
      参数:
      s - 要写入的字节串。
      抛出:
      IOException - 如果发生 I/O 错误。
    • writeChars

      public final void writeChars(String  s) throws IOException
      将字符串作为字符序列写入文件。每个字符都被写入数据输出流,就像通过 writeChar 方法一样。写入从文件指针的当前位置开始。
      指定者:
      writeChars 在接口 DataOutput
      参数:
      s - 要写入的 String 值。
      抛出:
      IOException - 如果发生 I/O 错误。
      参见:
    • writeUTF

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

      首先,将两个字节写入文件,从当前文件指针开始,就好像通过 writeShort 方法给出后面的字节数一样。这个值是实际写出的字节数,而不是字符串的长度。在长度之后,字符串的每个字符按顺序输出,对每个字符使用修改后的 UTF-8 编码。

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