-
- All Superinterfaces:
-
DataInput,DataOutput
public interface JNLPRandomAccessFile extends DataInput, DataOutput
该类的实例支持读取和写入随机访问文件。 随机访问文件的行为类似于存储在文件系统中的大量字节。 有一种游标,或索引到隐含的数组,称为文件指针 ; 输入操作读取从文件指针开始的字节,并使文件指针超过读取的字节。 如果在读/写模式下创建随机访问文件,则输出操作也可用; 输出操作从文件指针开始写入字节,并将文件指针提前到写入的字节。 写入隐式数组的当前端的输出操作会导致扩展数组。 文件指针可以通过读取getFilePointer方法和由设置seek方法。这个类中的所有读取例程通常是真的,如果在读取所需的字节数之前到达文件结尾,则抛出一个
EOFException(这是一种IOException)。 如果由于除文件末尾之外的任何原因而无法读取任何字节,则抛出IOException以外的EOFException。 特别地,如果流已关闭,IOException可能会抛出IOException。鼓励执行实施可能写入文件的最大数量的数据。
- 从以下版本开始:
- 1.4.2
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 voidclose()关闭此随机访问文件流并释放与流相关联的任何系统资源。longgetFilePointer()返回此文件中的当前偏移量。longlength()返回此文件的长度。intread()从该文件读取一个字节的数据。intread(byte[] b)从该文件读取最多b.length个字节的数据到字节数组。intread(byte[] b, int off, int len)从该文件读取最多len个字节的数据到一个字节数组。booleanreadBoolean()从此文件读取一个boolean。bytereadByte()从此文件中读取一个带符号的八位值。charreadChar()从此文件中读取Unicode字符。doublereadDouble()从此文件读取一个double。floatreadFloat()从此文件读取一个float。voidreadFully(byte[] b)从该文件读取b.length个字节到字节数组,从当前文件指针开始。voidreadFully(byte[] b, int off, int len)从该文件读取完整的len字节到字节数组,从当前文件指针开始。intreadInt()从该文件读取一个带符号的32位整数。StringreadLine()从此文件中读取下一行文本。longreadLong()从该文件中读取一个带符号的64位整数。shortreadShort()从此文件中读取一个已签名的16位数字。intreadUnsignedByte()从此文件中读取一个无符号的八位数字。intreadUnsignedShort()从该文件中读取一个无符号的16位数字。StringreadUTF()从该文件读取字符串。voidseek(long pos)设置文件指针偏移,从该文件的开头测量,发生下一次读取或写入。voidsetLength(long newLength)设置此文件的长度。intskipBytes(int n)尝试跳过超过n个字节的输入丢弃跳过的字节。voidwrite(byte[] b)从指定的字节数组写入b.length个字节到该文件,从当前文件指针开始。voidwrite(byte[] b, int off, int len)从指定的字节数组写入len个字节,从偏移量off开始写入此文件。voidwrite(int b)将指定的字节写入此文件。voidwriteBoolean(boolean v)将boolean写入文件作为一个字节值。voidwriteByte(int v)将一个byte写入文件作为一个字节的值。voidwriteBytes(String s)将字符串作为字节序列写入文件。voidwriteChar(int v)将char写入文件作为双字节值,高位字节。voidwriteChars(String s)将一个字符串作为字符序列写入文件。voidwriteDouble(double v)使用long中的doubleToLongBits方法将双参数转换为Double,然后long值作为八字节数量,高字节优先写入文件。voidwriteFloat(float v)浮子参数的转换int使用floatToIntBits方法在类Float,然后写入该int值到该文件作为一个四字节数量,高字节。voidwriteInt(int v)将文件中的int写入四字节,高位字节。voidwriteLong(long v)向文件写入一个long作为八字节,高字节优先。voidwriteShort(int v)将short写入文件为两个字节,高字节为先。voidwriteUTF(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错误。
-
-