Package com.graphdbapi.file
Interface RandomAccessFileObject
-
- All Superinterfaces:
AutoCloseable
public interface RandomAccessFileObject extends AutoCloseable
用于IO的RandomAccessFile
-
-
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()
从此文件中读取一个字符。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中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 个字节,从当前文件指针开始。 如果读取的字节依次为b1
、b2
、b3
和b4
,其中0 <= b1, b2, b3, b4 <= 255
,那么结果等于:String
readLine()
从此文件中读取下一行文本。此方法从文件中连续读取字节,从当前文件指针开始,直到到达行终止符或文件末尾。 通过取字符低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符。因此,此方法不支持完整的 Unicode 字符集。long
readLong()
从此文件中读取一个有符号的 64 位整数。此方法从文件中读取八个字节,从当前文件指针开始。 如果读取的字节依次为b1
、b2
、b3
、b4
、b5
、b6
、b7
, 和b8,
其中:short
readShort()
从此文件中读取一个带符号的 16 位数字。该方法从此文件读取两个字节,从当前文件指针开始。 如果按顺序读取的两个字节是b1
和b2
,其中两个值中的每一个都在0
和255
之间(含), 则结果等于:int
readUnsignedByte()
从此文件中读取一个无符号的八位数字。此方法从此文件读取一个字节,从当前文件指针开始,并返回该字节。int
readUnsignedShort()
从此文件中读取一个无符号的 16 位数字。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中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
作为两个字节写入文件,高字节在前。 写入从文件指针的当前位置开始。-
Methods inherited from interface java.lang.AutoCloseable
close
-
-
-
-
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异常
-
length
long length() throws GraphDbFileIOException
返回此文件的长度。- Returns:
- 此文件的长度,以字节为单位。
- 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 位数字。该方法从此文件读取两个字节,从当前文件指针开始。 如果按顺序读取的两个字节是b1
和b2
,其中两个值中的每一个都在0
和255
之间(含), 则结果等于:(short)((b1 << 8) | b2)
这个方法阻塞,直到读到两个字节,检测到流的结尾,或者异常被抛出。
- Returns:
- 此文件的下两个字节,解释为有符号的 16 位数字。
- Throws:
GraphDbFileIOException
- IO异常
-
readUnsignedShort
int readUnsignedShort() throws GraphDbFileIOException
从此文件中读取一个无符号的 16 位数字。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中0 <= b1, b2 <= 255
,则结果等于:(b1 << 8) | b2
此方法阻塞,直到读取两个字节,检测到流的结尾,或者抛出异常。
- Returns:
- 此文件的下两个字节,解释为一个无符号的 16 位整数
- Throws:
GraphDbFileIOException
- IO异常
-
readChar
char readChar() throws GraphDbFileIOException
从此文件中读取一个字符。此方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中0 <= b1, b2 <= 255
,则结果等于:(char)((b1 << 8) | b2)
此方法阻塞,直到读取两个字节,检测到流的结尾,或抛出异常。
- Returns:
- 此文件的下两个字节,解释为
char
- Throws:
GraphDbFileIOException
- IO异常
-
readInt
int readInt() throws GraphDbFileIOException
从此文件中读取一个有符号的 32 位整数。此方法从文件中读取 4 个字节,从当前文件指针开始。 如果读取的字节依次为b1
、b2
、b3
和b4
,其中0 <= b1, b2, b3, b4 <= 255
,那么结果等于:(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
此方法阻塞,直到读取了四个字节、检测到流的结尾或抛出异常。
- Returns:
- 此文件的下四个字节,解释为
int
- Throws:
GraphDbFileIOException
- IO异常
-
readLong
long readLong() throws GraphDbFileIOException
从此文件中读取一个有符号的 64 位整数。此方法从文件中读取八个字节,从当前文件指针开始。 如果读取的字节依次为b1
、b2
、b3
、b4
、b5
、b6
、b7
, 和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异常
-
-