Module java.base
Package java.io

Class RandomAccessFile

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

public class RandomAccessFile extends Object implements DataOutput, DataInput, Closeable
该类的实例支持对随机访问文件进行读取和写入。随机访问文件的行为类似于存储在文件系统中的大型字节数组。有一种光标,或者称为隐含数组的索引,称为文件指针;输入操作从文件指针开始读取字节,并将文件指针移过已读取的字节。如果随机访问文件是以读/写模式创建的,则还可以进行输出操作;输出操作从文件指针开始写入字节,并将文件指针移过已写入的字节。如果输出操作写入超出隐含数组的当前结尾,则会扩展数组。文件指针可以通过getFilePointer方法读取,并通过seek方法设置。

通常情况下,该类中的所有读取例程都是这样的:如果在读取所需字节数之前达到文件结尾,则会抛出一个EOFException(这是一种IOException)。如果由于除文件结尾之外的任何原因而无法读取任何字节,则会抛出一个除EOFException之外的IOException。特别地,如果流已关闭,则可能会抛出IOException

自 JDK 版本:
1.0
  • Constructor Summary

    Constructors
    Constructor
    Description
    RandomAccessFile(File file, String mode)
    创建一个随机访问文件流以从指定的文件读取,并可选择写入。
    创建一个随机访问文件流以从具有指定名称的文件读取,并可选择写入。
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    close()
    关闭此随机访问文件流并释放与该流关联的任何系统资源。
    final FileChannel
    返回与此文件关联的唯一FileChannel对象。
    getFD()
    返回与此流关联的不透明文件描述符对象。
    long
    返回此文件中的当前偏移量。
    long
    length()
    返回此文件的长度。
    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)
    将双精度参数转换为long,使用Double类中的doubleToLongBits方法,然后将该long值作为一个八字节数量,高字节在前,写入文件。
    final void
    writeFloat(float v)
    将浮点参数转换为int,使用Float类中的floatToIntBits方法,然后将该int值作为一个四字节数量,高字节在前,写入文件。
    final void
    writeInt(int v)
    将一个int作为四个字节,高字节在前,写入文件。
    final void
    writeLong(long v)
    将一个long作为八个字节,高字节在前,写入文件。
    final void
    writeShort(int v)
    将一个short作为两个字节,高字节在前,写入文件。
    final void
    以机器无关的方式使用修改的 UTF-8编码将字符串写入文件。

    Methods declared in class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • RandomAccessFile

      public RandomAccessFile(String name, String mode) throws FileNotFoundException
      创建一个随机访问文件流以从具有指定名称的文件读取,并可选择写入。创建一个新的FileDescriptor对象来表示与文件的连接。

      mode参数指定要打开文件的访问模式。允许的值及其含义如RandomAccessFile(File,String)构造函数中所指定的。

      如果存在安全管理器,则将name参数作为其参数调用其checkRead方法,以查看是否允许对文件进行读取。如果模式允许写入,则还将调用安全管理器的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
      创建一个随机访问文件流,用于从指定的文件中读取,并可选择写入。创建一个新的FileDescriptor对象来表示此文件连接。

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

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

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

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

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

    • getFD

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

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

      返回的通道的位置始终等于此对象的文件指针偏移量,该偏移量由getFilePointer方法返回。显式更改此对象的文件指针偏移量,无论是显式更改还是通过读取或写入字节,都将更改通道的位置,反之亦然。通过此对象更改文件长度将更改通过文件通道看到的长度,反之亦然。

      返回:
      与此文件关联的文件通道
      自:
      1.4
    • read

      public int read() throws IOException
      从此文件读取一个字节的数据。字节作为介于0到255(0x00-0x0ff)的整数返回。如果尚未有输入可用,则此方法将阻塞。

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

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

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

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

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

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

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

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

      public final void readFully(byte[] b) throws IOException
      从当前文件指针开始,从此文件读取b.length个字节到字节数组中。此方法将重复从文件中读取,直到读取请求的字节数。此方法将阻塞,直到读取请求的字节数,检测到流的末尾或抛出异常。
      指定者:
      readFully 在接口 DataInput
      参数:
      b - 读取数据的缓冲区。
      抛出:
      NullPointerException - 如果b为null。
      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
      API注释:
      如果此流有关联的通道,则此方法将关闭通道,进而关闭此流。重写此方法的子类应准备处理可能的重入调用。
      抛出:
      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位整数。该方法从文件开始处的当前文件指针开始读取8个字节。如果按顺序读取的字节分别为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
      从此文件中读取下一行文本。该方法连续从文件中读取字节,从当前文件指针开始,直到达到行终止符或文件结尾。每个字节都会被转换为一个字符,方法是将字符的低8位取为字节的值,并将字符的高8位设置为零。因此,该方法不支持完整的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方法转换为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错误。