-
- All Superinterfaces:
-
DataInput
,DataOutput
public interface JNLPRandomAccessFile extends DataInput, DataOutput
该类的实例支持读取和写入随机访问文件。 随机访问文件的行为类似于存储在文件系统中的大量字节。 有一种游标,或索引到隐含的数组,称为文件指针 ; 输入操作读取从文件指针开始的字节,并使文件指针超过读取的字节。 如果在读/写模式下创建随机访问文件,则输出操作也可用; 输出操作从文件指针开始写入字节,并将文件指针提前到写入的字节。 写入隐式数组的当前端的输出操作会导致扩展数组。 文件指针可以通过读取getFilePointer
方法和由设置seek
方法。这个类中的所有读取例程通常是真的,如果在读取所需的字节数之前到达文件结尾,则抛出一个
EOFException
(这是一种IOException
)。 如果由于除文件末尾之外的任何原因而无法读取任何字节,则抛出IOException
以外的EOFException
。 特别地,如果流已关闭,IOException
可能会抛出IOException
。鼓励执行实施可能写入文件的最大数量的数据。
- 从以下版本开始:
- 1.4.2
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 void
close()
关闭此随机访问文件流并释放与流相关联的任何系统资源。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)
使用long
中的doubleToLongBits
方法将双参数转换为Double
,然后long
值作为八字节数量,高字节优先写入文件。void
writeFloat(float v)
浮子参数的转换int
使用floatToIntBits
方法在类Float
,然后写入该int
值到该文件作为一个四字节数量,高字节。void
writeInt(int v)
将文件中的int
写入四字节,高位字节。void
writeLong(long v)
向文件写入一个long
作为八字节,高字节优先。void
writeShort(int v)
将short
写入文件为两个字节,高字节为先。void
writeUTF(String str)
使用UTF-8编码以机器无关方式将字符串写入文件。
-
-
-
方法详细信息
-
close
void close() throws IOException
关闭此随机访问文件流并释放与流相关联的任何系统资源。 封闭的随机存取文件无法执行输入或输出操作,无法重新打开。- 异常
-
IOException
- 如果发生I / O错误。
-
length
long length() throws IOException
返回此文件的长度。- 结果
- 该文件的长度,以字节为单位。
- 异常
-
IOException
- 如果发生I / O错误。
-
getFilePointer
long getFilePointer() throws IOException
返回此文件中的当前偏移量。- 结果
- 从文件开头的偏移量(以字节为单位),下一次读取或写入发生。
- 异常
-
IOException
- 如果发生I / O错误。
-
read
int read() throws IOException
从该文件读取一个字节的数据。 该字节作为0到255(0x00-0x0ff
)范围内的整数返回。 如果没有输入可用,此方法将阻止。虽然
JNLPRandomAccessFile
不是JNLPRandomAccessFile
的子类,InputStream
该方法的行为与InputStream
的读取方法InputStream
。- 结果
-
数据的下一个字节,如果已经到达文件的末尾,
-1
。 - 异常
-
IOException
- 如果发生I / O错误。 如果达到文件结尾,则不会抛出。
-
read
int read(byte[] b, int off, int len) throws IOException
从该文件读取最多len
个字节的数据为字节数组。 该方法阻塞,直到输入的至少一个字节可用。虽然
JNLPRandomAccessFile
不是JNLPRandomAccessFile
的子类,InputStream
该方法的行为与InputStream
的read(byte [],int,int)方法InputStream
。- 参数
-
b
- 读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 读取的最大字节数。 - 结果
-
读入缓冲区的总字节数,如果没有更多的数据,因为文件的结尾已经到达,
-1
。 - 异常
-
IOException
- 如果发生I / O错误。
-
read
int read(byte[] b) throws IOException
从该文件读取最多b.length
个字节的数据到一个字节数组。 该方法阻塞,直到输入的至少一个字节可用。虽然
JNLPRandomAccessFile
不是JNLPRandomAccessFile
的子类,InputStream
该方法的行为与InputStream
的read(byte [])方法InputStream
。- 参数
-
b
- 读取数据的缓冲区。 - 结果
-
读入缓冲区的总字节数,如果没有更多的数据,因为该文件的结尾已经到达,
-1
。 - 异常
-
IOException
- 如果发生I / O错误。
-
readFully
void readFully(byte[] b) throws IOException
从该文件读取b.length
字节到字节数组,从当前文件指针开始。 该方法从文件中重复读取,直到读取所请求的字节数。 该方法阻塞,直到读取所请求的字节数,检测到流的结尾,或抛出异常。- Specified by:
-
readFully
在接口DataInput
- 参数
-
b
- 读取数据的缓冲区。 - 异常
-
EOFException
- 如果此文件在读取所有字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readFully
void readFully(byte[] b, int off, int len) throws IOException
从该文件读取完全len
个字节到字节数组,从当前文件指针开始。 该方法从文件中重复读取,直到读取所请求的字节数。 该方法阻塞,直到读取所请求的字节数,检测到流的结尾,或抛出异常。- Specified by:
-
readFully
在接口DataInput
- 参数
-
b
- 读取数据的缓冲区。 -
off
- 数据的起始偏移量。 -
len
- 要读取的字节数。 - 异常
-
EOFException
- 如果此文件在读取所有字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
skipBytes
int skipBytes(int n) throws IOException
尝试跳过超过n
字节的输入丢弃跳过的字节。该方法可能跳过一些较小数量的字节,可能为零。 这可能是由许多条件中的任何一个引起的
n
字节之前已经跳过的文件到达结束只有一种可能。 这种方法永远不会抛出一个EOFException
。 返回实际跳过的字节数。 如果n
为负数,则不会跳过任何字节。- Specified by:
-
skipBytes
在接口DataInput
- 参数
-
n
- 要跳过的字节数。 - 结果
- 实际跳过的字节数。
- 异常
-
IOException
- 如果发生I / O错误。
-
readBoolean
boolean readBoolean() throws IOException
从此文件读取一个boolean
。 该方法从文件中读取单个字节,从当前文件指针开始。 价值0
代表false
。 任何其他值代表true
。 该方法阻塞直到字节被读取,流的结束被检测到或抛出异常。- Specified by:
-
readBoolean
在接口DataInput
- 结果
-
boolean
读数。 - 异常
-
EOFException
- 如果此文件已到达结束。 -
IOException
- 如果发生I / O错误。
-
readByte
byte readByte() throws IOException
从此文件中读取一个带符号的八位值。 该方法从当前文件指针开始从文件读取一个字节。 如果读取的字节是b
,其中0 <= b <= 255
,那么结果是:(byte)(b)
该方法阻塞直到字节被读取,流的结束被检测到或抛出异常。
- Specified by:
-
readByte
在接口DataInput
- 结果
-
该文件的下一个字节作为带符号的8位
byte
。 - 异常
-
EOFException
- 如果这个文件已经到了最后。 -
IOException
- 如果发生I / O错误。
-
readUnsignedByte
int readUnsignedByte() throws IOException
从此文件中读取一个无符号的八位数字。 此方法从该文件读取一个字节,从当前文件指针开始,并返回该字节。该方法阻塞直到字节被读取,流的结束被检测到或抛出异常。
- Specified by:
-
readUnsignedByte
在接口DataInput
- 结果
- 该文件的下一个字节被解释为无符号的8位数字。
- 异常
-
EOFException
- 如果此文件已到达结束。 -
IOException
- 如果发生I / O错误。
-
readShort
short readShort() throws IOException
从此文件中读取一个已签名的16位数字。 该方法从该文件读取两个字节,从当前文件指针开始。 如果按顺序读取的两个字节是b1
和b2
,其中两个值中的每一个在0
和255
之间,其结果等于:(short)((b1 << 8) | b2)
此方法将阻塞,直到读取两个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readShort
在接口DataInput
- 结果
- 该文件的下两个字节被解释为一个有符号的16位数字。
- 异常
-
EOFException
- 如果此文件在读取两个字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readUnsignedShort
int readUnsignedShort() throws IOException
从该文件中读取一个无符号的16位数字。 该方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中0 <= b1, b2 <= 255
,则结果等于:(b1 << 8) | b2
此方法将阻塞,直到读取两个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readUnsignedShort
在接口DataInput
- 结果
- 该文件的下两个字节被解释为无符号16位整数。
- 异常
-
EOFException
- 如果此文件在读取两个字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readChar
char readChar() throws IOException
从此文件中读取Unicode字符。 该方法从文件中读取两个字节,从当前文件指针开始。 如果读取的字节顺序为b1
和b2
,其中0 <= b1, b2 <= 255
,则结果等于:(char)((b1 << 8) | b2)
此方法将阻塞,直到读取两个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readChar
在接口DataInput
- 结果
- 该文件的下两个字节为Unicode字符。
- 异常
-
EOFException
- 如果此文件在读取两个字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readInt
int readInt() throws IOException
从该文件读取一个带符号的32位整数。 该方法从当前文件指针开始从文件读取4个字节。 如果读取的字节依次是b1
,b2
,b3
,和b4
,其中0 <= b1, b2, b3, b4 <= 255
,则结果等于:(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
该方法阻塞,直到读取四个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readInt
在接口DataInput
- 结果
-
该文件的下四个字节,解释为
int
。 - 异常
-
EOFException
- 如果此文件在读取四个字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readLong
long readLong() throws IOException
从该文件中读取一个带符号的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
该方法阻塞,直到读取8个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readLong
接口DataInput
- 结果
-
该文件的接下来的八个字节,解释为
long
。 - 异常
-
EOFException
- 如果此文件在读取八个字节之前到达结束。 -
IOException
- 如果发生I / O错误。
-
readFloat
float readFloat() throws IOException
从此文件读取一个float
。 此方法读取一个int
值,并从当前文件指针,就好像由readInt
方法,然后转换该int
为float
使用intBitsToFloat
在类方法Float
。该方法阻塞,直到读取四个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readFloat
在接口DataInput
- 结果
-
该文件的下四个字节,解释为
float
。 - 异常
-
EOFException
- 如果此文件在读取四个字节之前到达结束。 -
IOException
- 如果发生I / O错误。 - 另请参见:
-
readInt()
-
readDouble
double readDouble() throws IOException
从此文件读取一个double
。 此方法读取一个long
值,并从当前文件指针,就好像由readLong
方法,然后转换该long
为double
使用longBitsToDouble
在类方法Double
。该方法阻塞,直到读取8个字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readDouble
在接口DataInput
- 结果
-
该文件的接下来的八个字节,解释为
double
。 - 异常
-
EOFException
- 如果此文件在读取八个字节之前到达结束。 -
IOException
- 如果发生I / O错误。 - 另请参见:
-
readLong()
-
readLine
String readLine() throws IOException
从此文件中读取下一行文本。 该方法从文件开始依次读取字节,从当前文件指针开始,直到到达行终止符或文件末尾。 通过将字符的低8位的字节值设置为零,将字符的高8位设置为零,将每个字节转换为字符。 因此,此方法不支持完整的Unicode字符集。一行文本由回车字符(
'\r'
),换行字符('\n'
),紧跟换行符的回车字符或文件结尾终止。 行终止字符被丢弃,不包括返回的字符串的一部分。该方法阻塞,直到读取换行字符,回车并读取其后的字节(以查看它是否为换行符),到达文件的结尾或抛出异常。
- Specified by:
-
readLine
在接口DataInput
- 结果
- 该文件的下一行文本,如果在读取一个字节之前遇到文件结尾,则返回null。
- 异常
-
IOException
- 如果发生I / O错误。
-
readUTF
String readUTF() throws IOException
从该文件读取字符串。 字符串已使用修改的UTF-8格式进行编码。从当前文件指针开始读取前两个字节,如
readUnsignedShort
。 该值给出编码字符串中的以下字节数,而不是生成字符串的长度。 以下字节被解释为以UTF-8格式编码字符的字节,并将其转换为字符。该方法阻塞,直到读取所有字节,检测到流的结尾,或抛出异常。
- Specified by:
-
readUTF
在接口DataInput
- 结果
- 一个Unicode字符串。
- 异常
-
EOFException
- 如果此文件在读取所有字节之前到达结束。 -
IOException
- 如果发生I / O错误。 -
UTFDataFormatException
- 如果字节不表示Unicode字符串的有效UTF-8编码。 - 另请参见:
-
readUnsignedShort()
-
seek
void seek(long pos) throws IOException
设置文件指针偏移,从该文件的开头测量,发生下一次读取或写入。 偏移可以设置为超出文件的末尾。 设置超出文件末尾的偏移量不会更改文件长度。 文件长度只有在偏移设置超出文件结尾之后才会通过写入进行更改。- 参数
-
pos
- 从文件开始测量的偏移位置,用于设置文件指针。 - 异常
-
IOException
- 如果pos
小于0
或发生I / O错误。
-
setLength
void setLength(long newLength) throws IOException
设置此文件的长度。如果由
length
方法返回的文件的当前长度大于newLength
参数,则该文件将被截断。 在这种情况下,如果由getFilePointer
方法返回的文件偏移量大于newLength
则在此方法返回后,偏移量将等于newLength
。如果由
length
方法返回的文件的当前长度小于newLength
参数,则该文件将被扩展。 在这种情况下,文件的扩展部分的内容未定义。- 参数
-
newLength
- 文件所需的长度 - 异常
-
IOException
- 如果发生I / O错误
-
write
void write(int b) throws IOException
将指定的字节写入此文件。 写入从当前文件指针开始。- Specified by:
-
write
在接口DataOutput
- 参数
-
b
-byte
。 - 异常
-
IOException
- 如果发生I / O错误。
-
write
void write(byte[] b) throws IOException
从指定的字节数组写入b.length
个字节到该文件,从当前文件指针开始。- Specified by:
-
write
在接口DataOutput
- 参数
-
b
- 数据。 - 异常
-
IOException
- 如果发生I / O错误。
-
write
void write(byte[] b, int off, int len) throws IOException
从指定的字节数组写入len
个字节,从偏移off
开始写入该文件。- Specified by:
-
write
在接口DataOutput
- 参数
-
b
- 数据。 -
off
- 数据中的起始偏移量。 -
len
- 要写入的字节数。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeBoolean
void writeBoolean(boolean v) throws IOException
以boolean
写入boolean
作为单字节值。 值true
写为值(byte)1
; 值false
被写出为值(byte)0
。 写入从文件指针的当前位置开始。- Specified by:
-
writeBoolean
在接口DataOutput
- 参数
-
v
- 要写入的boolean
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeByte
void writeByte(int v) throws IOException
将byte
写入文件作为单字节值。 写入从文件指针的当前位置开始。- Specified by:
-
writeByte
在接口DataOutput
- 参数
-
v
-byte
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeShort
void writeShort(int v) throws IOException
向文件写入一个short
作为两个字节,高字节优先。 写入从文件指针的当前位置开始。- Specified by:
-
writeShort
在接口DataOutput
- 参数
-
v
- ashort
待写。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeChar
void writeChar(int v) throws IOException
将char
写入文件作为双字节值,高字节优先。 写入从文件指针的当前位置开始。- Specified by:
-
writeChar
在接口DataOutput
- 参数
-
v
- 要写入的char
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeInt
void writeInt(int v) throws IOException
向文件写入一个int
作为四字节,高字节优先。 写入从文件指针的当前位置开始。- Specified by:
-
writeInt
在接口DataOutput
- 参数
-
v
-int
。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeLong
void writeLong(long v) throws IOException
向文件写入一个long
为八字节,高位字节。 写入从文件指针的当前位置开始。- Specified by:
-
writeLong
在接口DataOutput
- 参数
-
v
- along
待写。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeFloat
void writeFloat(float v) throws IOException
浮子参数的转换int
使用floatToIntBits
方法在类Float
,然后写入该int
值到该文件作为一个四字节数量,高字节。 写入从文件指针的当前位置开始。- Specified by:
-
writeFloat
在接口DataOutput
- 参数
-
v
- 要写入的float
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeDouble
void writeDouble(double v) throws IOException
双参数传递给转换long
使用doubleToLongBits
方法在类Double
,然后写入该long
值到该文件作为一个八字节的数量,高字节。 写入从文件指针的当前位置开始。- Specified by:
-
writeDouble
在接口DataOutput
- 参数
-
v
-double
值。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeBytes
void writeBytes(String s) throws IOException
将字符串作为字节序列写入文件。 字符串中的每个字符顺序地通过丢弃其高8位来写出。 写入从文件指针的当前位置开始。- Specified by:
-
writeBytes
在接口DataOutput
- 参数
-
s
- 要写入的字节串。 - 异常
-
IOException
- 如果发生I / O错误。
-
writeChars
void writeChars(String s) throws IOException
将一个字符串作为字符序列写入文件。 每个字符都被写入数据输出流,就好像通过writeChar
方法。 写入从文件指针的当前位置开始。- Specified by:
-
writeChars
在接口DataOutput
- 参数
-
s
- 要写入的String
值。 - 异常
-
IOException
- 如果发生I / O错误。 - 另请参见:
-
writeChar(int)
-
writeUTF
void writeUTF(String str) throws IOException
使用UTF-8编码以机器无关方式将字符串写入文件。首先,将两个字节写入文件,从当前文件指针开始,好像通过
writeShort
方法给出要跟随的字节数。 该值是实际写出的字节数,而不是字符串的长度。 按照长度,字符串的每个字符顺序地使用每个字符的UTF-8编码输出。- Specified by:
-
writeUTF
在接口DataOutput
- 参数
-
str
- 要写入的字符串。 - 异常
-
IOException
- 如果发生I / O错误。
-
-