Interface RandomAccessFileObject

    • Method Summary

      All Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      long getFilePointer()
      返回此文件中的当前偏移量。
      long length()
      返回此文件的长度。
      int read​(byte[] b)
      从此文件中读取最多 b.length 个字节的数据到一个字节数组中。此方法会阻塞,直到至少有一个字节的输入可用。
      int read​(byte[] b, int off, int len)
      从此文件中读取最多 len 个字节的数据到一个字节数组中。 此方法会阻塞,直到至少有一个字节的输入可用。
      boolean readBoolean()
      从此文件中读取 boolean。此方法从文件中读取单个字节,从当前文件指针开始。 0 的值表示 false。任何其他值都表示 true。 此方法会阻塞,直到读取字节、检测到流的结尾或抛出异常。
      byte readByte()
      从此文件中读取一个有符号的八位值。此方法从文件中读取一个字节,从当前文件指针开始。 如果读取的字节是 b,其中 0 <= b <= 255, 则结果为:
      char readChar()
      从此文件中读取一个字符。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为 b1b2,其中 0 <= b1, b2 <= 255,则结果等于:
      double readDouble()
      从此文件中读取 double。此方法从当前文件指针开始读取 long 值,就像通过 readLong 方法一样, 然后使用 longBitsToDouble 将该 {@code long} 转换为 {@code double} Double 中的方法。
      float readFloat()
      从此文件中读取 float。此方法读取 int 值,从当前文件指针开始,就像通过 readInt 方法一样, 然后使用 intBitsToFloat 将该 {@code int} 转换为 {@code float} Float 中的方法。
      void readFully​(byte[] b)
      从此文件中读取 b.length 个字节到字节数组中,从当前文件指针开始。 此方法从文件中重复读取,直到读取了请求的字节数。此方法会阻塞,直到读取了请求的字节数、检测到流的结尾或抛出异常。
      void readFully​(byte[] b, int off, int len)
      从当前文件指针开始,从该文件中准确读取 len 个字节到字节数组中。此方法从文件中重复读取,直到读取了请求的字节数。 此方法会阻塞,直到读取了请求的字节数、检测到流的结尾或抛出异常。
      int readInt()
      从此文件中读取一个有符号的 32 位整数。此方法从文件中读取 4 个字节,从当前文件指针开始。 如果读取的字节依次为 b1b2b3b4,其中 0 <= b1, b2, b3, b4 <= 255,那么结果等于:
      String readLine()
      从此文件中读取下一行文本。此方法从文件中连续读取字节,从当前文件指针开始,直到到达行终止符或文件末尾。 通过取字符低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符。因此,此方法不支持完整的 Unicode 字符集。
      long readLong()
      从此文件中读取一个有符号的 64 位整数。此方法从文件中读取八个字节,从当前文件指针开始。 如果读取的字节依次为b1b2b3b4b5b6b7 , 和 b8, 其中:
      short readShort()
      从此文件中读取一个带符号的 16 位数字。该方法从此文件读取两个字节,从当前文件指针开始。 如果按顺序读取的两个字节是 b1b2,其中两个值中的每一个都在 0255 之间(含), 则结果等于:
      int readUnsignedByte()
      从此文件中读取一个无符号的八位数字。此方法从此文件读取一个字节,从当前文件指针开始,并返回该字节。
      int readUnsignedShort()
      从此文件中读取一个无符号的 16 位数字。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为 b1b2,其中 0 <= b1, b2 <= 255,则结果等于:
      void seek​(long pos)
      设置文件指针偏移量,从该文件的开头开始测量,在该位置发生下一次读取或写入。 偏移量可能设置在文件末尾之外。设置超出文件末尾的偏移量不会改变文件长度。 只有在将偏移量设置为超出文件末尾之后,文件长度才会更改。
      void setLength​(long newLength)
      设置此文件的长度。
      int skipBytes​(int n)
      尝试跳过 n 字节的输入并丢弃跳过的字节。 此方法可能会跳过一些较小的字节数,可能为零。这可能由多种情况中的任何一种引起; 在跳过 n 个字节之前到达文件末尾只是一种可能性。 返回实际跳过的字节数。如果 n 为负,则不会跳过任何字节。
      void write​(byte[] b)
      b.length 个字节从指定的字节数组写入此文件,从当前文件指针开始。
      void write​(byte[] b, int off, int len)
      len 字节从从偏移量 off 开始的指定字节数组写入此文件。
      void writeBoolean​(boolean v)
      boolean 作为一字节值写入文件。值 true 写为值 (byte)1; 值 false 写为值 (byte)0。写入从文件指针的当前位置开始。
      void writeByte​(int v)
      byte 作为一字节值写入文件。写入从文件指针的当前位置开始。
      void writeChar​(int v)
      char 作为两字节值写入文件,高字节在前。 写入从文件指针的当前位置开始。
      void writeChars​(String s)
      将字符串作为字符序列写入文件。每个字符都被写入数据输出流,就像通过 writeChar 方法一样。写入从文件指针的当前位置开始。
      void writeDouble​(double v)
      使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long, 然后将该 long 值作为八字节数量写入文件,高字节在前.写入从文件指针的当前位置开始。
      void writeFloat​(float v)
      使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int, 然后将该 int 值作为四字节数量写入文件,高字节在前.写入从文件指针的当前位置开始。
      void writeInt​(int v)
      int 作为四个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
      void writeLong​(long v)
      将一个 long 作为八个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
      void writeShort​(int v)
      short 作为两个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
    • Method Detail

      • read

        int read​(byte[] b,
                 int off,
                 int len)
          throws GraphDbFileIOException
        从此文件中读取最多 len 个字节的数据到一个字节数组中。 此方法会阻塞,直到至少有一个字节的输入可用。
        Parameters:
        b - 读取数据的缓冲区。
        off - 数组 b 中写入数据的起始偏移量。
        len - 读取的最大字节数。
        Returns:
        读入缓冲区的总字节数,如果由于已到达文件末尾而没有更多数据,则为-1
        Throws:
        GraphDbFileIOException - IO异常
      • read

        int read​(byte[] b)
          throws GraphDbFileIOException
        从此文件中读取最多 b.length 个字节的数据到一个字节数组中。此方法会阻塞,直到至少有一个字节的输入可用。
        Parameters:
        b - 读取数据的缓冲区。
        Returns:
        读入缓冲区的总字节数,或者 -1 如果由于已到达此文件的末尾而没有更多数据。
        Throws:
        GraphDbFileIOException - IO异常
      • readFully

        void readFully​(byte[] b)
                throws GraphDbFileIOException
        从此文件中读取 b.length 个字节到字节数组中,从当前文件指针开始。 此方法从文件中重复读取,直到读取了请求的字节数。此方法会阻塞,直到读取了请求的字节数、检测到流的结尾或抛出异常。
        Parameters:
        b - 读取数据的缓冲区。
        Throws:
        GraphDbFileIOException - IO异常
      • readFully

        void readFully​(byte[] b,
                       int off,
                       int len)
                throws GraphDbFileIOException
        从当前文件指针开始,从该文件中准确读取 len 个字节到字节数组中。此方法从文件中重复读取,直到读取了请求的字节数。 此方法会阻塞,直到读取了请求的字节数、检测到流的结尾或抛出异常。
        Parameters:
        b - 读取数据的缓冲区。
        off - 到数据数组 b 的起始偏移量。
        len - 要读取的字节数.
        Throws:
        GraphDbFileIOException - IO异常
      • skipBytes

        int skipBytes​(int n)
               throws GraphDbFileIOException
        尝试跳过 n 字节的输入并丢弃跳过的字节。 此方法可能会跳过一些较小的字节数,可能为零。这可能由多种情况中的任何一种引起; 在跳过 n 个字节之前到达文件末尾只是一种可能性。 返回实际跳过的字节数。如果 n 为负,则不会跳过任何字节。
        Parameters:
        n - 要跳过的字节数。
        Returns:
        实际跳过的字节数。
        Throws:
        GraphDbFileIOException - IO异常
      • write

        void write​(byte[] b)
            throws GraphDbFileIOException
        b.length 个字节从指定的字节数组写入此文件,从当前文件指针开始。
        Parameters:
        b - 数据
        Throws:
        GraphDbFileIOException - IO异常
      • write

        void write​(byte[] b,
                   int off,
                   int len)
            throws GraphDbFileIOException
        len 字节从从偏移量 off 开始的指定字节数组写入此文件。
        Parameters:
        b - 数据。
        off - 数据中的起始偏移量。
        len - 要写入的字节数.
        Throws:
        GraphDbFileIOException - IO异常
      • getFilePointer

        long getFilePointer()
                     throws GraphDbFileIOException
        返回此文件中的当前偏移量。
        Returns:
        从文件开头开始的偏移量,以字节为单位,在该处发生下一次读取或写入。
        Throws:
        GraphDbFileIOException - IO异常
      • seek

        void seek​(long pos)
           throws GraphDbFileIOException
        设置文件指针偏移量,从该文件的开头开始测量,在该位置发生下一次读取或写入。 偏移量可能设置在文件末尾之外。设置超出文件末尾的偏移量不会改变文件长度。 只有在将偏移量设置为超出文件末尾之后,文件长度才会更改。
        Parameters:
        pos - 设置文件指针的偏移位置,以从文件开头的字节为单位。
        Throws:
        GraphDbFileIOException - IO异常
      • setLength

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

        如果 length 方法返回的文件当前长度大于 newLength 参数,则文件将被截断。 在这种情况下,如果 getFilePointer 方法返回的文件偏移量大于 newLength,则在此方法返回后, 偏移量将等于 newLength

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

        Parameters:
        newLength - 需要的文件长度
        Throws:
        GraphDbFileIOException - 如果发生IO错误
      • readBoolean

        boolean readBoolean()
                     throws GraphDbFileIOException
        从此文件中读取 boolean。此方法从文件中读取单个字节,从当前文件指针开始。 0 的值表示 false。任何其他值都表示 true。 此方法会阻塞,直到读取字节、检测到流的结尾或抛出异常。
        Returns:
        读取的 boolean 值。
        Throws:
        GraphDbFileIOException - IO异常
      • readByte

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

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

        Returns:
        此文件的下一个字节作为有符号的八位 byte
        Throws:
        GraphDbFileIOException - IO异常
      • readUnsignedByte

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

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

        Returns:
        此文件的下一个字节,解释为一个无符号的八位数字。
        Throws:
        GraphDbFileIOException - IO异常
      • readShort

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

        这个方法阻塞,直到读到两个字节,检测到流的结尾,或者异常被抛出。

        Returns:
        此文件的下两个字节,解释为有符号的 16 位数字。
        Throws:
        GraphDbFileIOException - IO异常
      • readUnsignedShort

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

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

        Returns:
        此文件的下两个字节,解释为一个无符号的 16 位整数
        Throws:
        GraphDbFileIOException - IO异常
      • readChar

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

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

        Returns:
        此文件的下两个字节,解释为 char
        Throws:
        GraphDbFileIOException - IO异常
      • readInt

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

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

        Returns:
        此文件的下四个字节,解释为 int
        Throws:
        GraphDbFileIOException - IO异常
      • readLong

        long readLong()
               throws GraphDbFileIOException
        从此文件中读取一个有符号的 64 位整数。此方法从文件中读取八个字节,从当前文件指针开始。 如果读取的字节依次为b1b2b3b4b5b6b7 , 和 b8, 其中:
             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
             

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

        Returns:
        此文件的下八个字节,解释为 long
        Throws:
        GraphDbFileIOException - IO异常
      • readFloat

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

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

        Returns:
        此文件的下四个字节,解释为 float
        Throws:
        GraphDbFileIOException - IO异常
      • readDouble

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

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

        Returns:
        此文件的下八个字节,解释为 double
        Throws:
        GraphDbFileIOException - IO异常
      • readLine

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

        一行文本以回车符('\r')、换行符('\n')、回车符后紧跟换行符结束字符,或文件的结尾。 行终止字符被丢弃并且不作为返回字符串的一部分包含在内。

        这个方法阻塞直到读到换行符,读回一个回车和后面的字节(看是否是换行符),到达文件末尾,或者抛出异常。

        Returns:
        此文件中的下一行文本,如果在读取一个字节之前遇到文件结尾,则返回 null。
        Throws:
        GraphDbFileIOException - IO异常
      • writeBoolean

        void writeBoolean​(boolean v)
                   throws GraphDbFileIOException
        boolean 作为一字节值写入文件。值 true 写为值 (byte)1; 值 false 写为值 (byte)0。写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 boolean
        Throws:
        GraphDbFileIOException - IO异常
      • writeByte

        void writeByte​(int v)
                throws GraphDbFileIOException
        byte 作为一字节值写入文件。写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 byte
        Throws:
        GraphDbFileIOException - IO异常
      • writeShort

        void writeShort​(int v)
                 throws GraphDbFileIOException
        short 作为两个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
        Parameters:
        v - 要编写的 short
        Throws:
        GraphDbFileIOException - IO异常
      • writeChar

        void writeChar​(int v)
                throws GraphDbFileIOException
        char 作为两字节值写入文件,高字节在前。 写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 char
        Throws:
        GraphDbFileIOException - IO异常
      • writeInt

        void writeInt​(int v)
               throws GraphDbFileIOException
        int 作为四个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 int
        Throws:
        GraphDbFileIOException - IO异常
      • writeLong

        void writeLong​(long v)
                throws GraphDbFileIOException
        将一个 long 作为八个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 long
        Throws:
        GraphDbFileIOException - IO异常
      • writeFloat

        void writeFloat​(float v)
                 throws GraphDbFileIOException
        使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int, 然后将该 int 值作为四字节数量写入文件,高字节在前.写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 float
        Throws:
        GraphDbFileIOException - IO异常
      • writeDouble

        void writeDouble​(double v)
                  throws GraphDbFileIOException
        使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long, 然后将该 long 值作为八字节数量写入文件,高字节在前.写入从文件指针的当前位置开始。
        Parameters:
        v - 要写入的 double
        Throws:
        GraphDbFileIOException - IO异常
      • writeChars

        void writeChars​(String s)
                 throws GraphDbFileIOException
        将字符串作为字符序列写入文件。每个字符都被写入数据输出流,就像通过 writeChar 方法一样。写入从文件指针的当前位置开始。
        Parameters:
        s - 是要写入的 String
        Throws:
        GraphDbFileIOException - IO异常