RandomAccessFile
java.lang.Object
|—java.io.RandomAccessFile
public class RandomAccessFile
extends Object
implements DataOutput, DataInput, Closeable
此类的实例支持读取和写入随机访问文件。随机访问文件的行为类似于存储在文件系统中的大型字节数组。有一种游标,或隐含数组的索引,称为文件指针;输入操作从文件指针开始读取字节,并将文件指针推进超过读取的字节。如果随机存取文件是以读/写模式创建的,那么输出操作也是可用的;输出操作从文件指针开始写入字节,并将文件指针前进到写入的字节。写入隐含数组当前末尾的输出操作会导致数组被扩展。文件指针可以通过 getFilePointer 方法读取并通过 seek 方法设置。
对于此类中的所有读取例程,通常情况下,如果在读取所需的字节数之前到达文件结尾,则会抛出 EOFException(这是一种 IOException)。如果由于文件结尾以外的任何原因无法读取任何字节,则会引发除 EOFException 之外的 IOException。特别是,如果流已关闭,则可能会引发 IOException。
Since:
JDK1.0
构造函数摘要
构造函数 | 描述 |
---|---|
RandomAccessFile(File file, String mode) | 创建一个随机访问文件流,以读取和写入由 File 参数指定的文件。 |
RandomAccessFile(String name, String mode) | 创建一个随机访问文件流,以读取和写入具有指定名称的文件。 |
方法总结
修饰符和类型 | 方法 | 描述 |
---|---|---|
void | close() | 关闭此随机访问文件流并释放与该流关联的所有系统资源。 |
FileChannel | getChannel() | 返回与此文件关联的唯一 FileChannel 对象。 |
FileDescriptor | getFD() | 返回与此流关联的不透明文件描述符对象。 |
long | getFilePointer() | 返回此文件中的当前偏移量。 |
long | length() | 返回此文件的长度。 |
int | read() | 从此文件中读取一个字节的数据。 |
int | read(byte[] b) | 从此文件中读取最多 b.length 个字节的数据到字节数组中。 |
int | read(byte[] b, int off, int len) | 从此文件中读取最多 len 个字节的数据到一个字节数组中。 |
boolean | readBoolean() | 从此文件中读取一个布尔值。 |
byte | readByte() | 从此文件中读取一个有符号的 8 位值。 |
char | readChar() | 从此文件中读取一个字符。 |
double | readDouble() | 从此文件中读取一个 double。 |
float | readFloat() | 从此文件中读取一个浮点数。 |
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) | 从偏移量 off 开始的指定字节数组中写入 len 个字节到此文件。 |
void | write(int b) | 将指定的字节写入此文件。 |
void | writeBoolean(boolean v) | 将布尔值作为单字节值写入文件。 |
void | writeByte(int v) | 将一个字节作为单字节值写入文件。 |
void | writeBytes(String s) | 将字符串作为字节序列写入文件。 |
void | writeChar(int v) | 将 char 作为两字节值写入文件,先是高字节。 |
void | writeChars(String s) | 将字符串作为字符序列写入文件。 |
void | writeDouble(double v) | 使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long,然后将该 long 值作为 8 字节数量写入文件,先是高字节。 |
void | writeFloat(float v) | 使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为四字节数量写入文件,先是高字节。 |
void | writeInt(int v) | 将 int 作为四个字节写入文件,先是高字节。 |
void | writeLong(long v) | 将 long 作为 8 个字节写入文件,先是高字节。 |
void | writeShort(int v) | 以两个字节的形式向文件写入一个short,首先是高字节。 |
void | writeUTF(String str) | 以与机器无关的方式使用修改后的 UTF-8 编码将字符串写入文件。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造函数详细信息
RandomAccessFile
public RandomAccessFile(String name, String mode) throws FileNotFoundException
创建一个随机访问文件流,以读取和写入具有指定名称的文件。 创建一个新的 FileDescriptor 对象来表示与文件的连接。
mode 参数指定打开文件的访问模式。 允许的值及其含义与为 RandomAccessFile(File,String) 构造函数指定的一样。
如果有安全管理器,则调用其 checkRead 方法,并使用 name 参数作为其参数,以查看是否允许对文件进行读取访问。 如果该模式允许写入,则还调用安全管理器的 checkWrite 方法,并将 name 参数作为其参数,以查看是否允许对文件进行写入访问。
参数:
参数名称 | 参数描述 |
---|---|
name | 系统相关的文件名 |
mode | 访问模式 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果模式参数不等于“r”、“rw”、“rws”或“rwd”之一 |
FileNotFoundException | 如果模式为“r”但给定的字符串不表示现有的常规文件,或者如果模式以“rw”开头但给定的字符串不表示现有的可写常规文件并且该名称的新常规文件不能 被创建,或者在打开或创建文件时发生其他错误 |
SecurityException | 如果安全管理器存在且其 checkRead 方法拒绝对文件的读访问或模式为“rw”且安全管理器的 checkWrite 方法拒绝对文件的写访问 |
RandomAccessFile
public RandomAccessFile(File file, String mode) throws FileNotFoundException
创建一个随机访问文件流,以读取和写入由 File 参数指定的文件。创建一个新的 FileDescriptor 对象来表示此文件连接。
mode 参数指定打开文件的访问模式。允许的值及其含义是:
“rws”和“rwd”模式的工作方式很像 FileChannel 类的 force(boolean) 方法,分别传递 true 和 false 的参数,除了它们总是适用于每个 I/O 操作,因此通常更有效。如果文件驻留在本地存储设备上,则当调用此类的方法返回时,可以保证该调用对文件所做的所有更改都已写入该设备。这对于确保在系统崩溃时不会丢失关键信息很有用。如果文件不驻留在本地设备上,则不会做出此类保证。
“rwd”模式可用于减少执行的 I/O 操作的数量。使用“rwd”只需要更新要写入存储的文件内容;使用“rws”需要更新文件的内容和要写入的元数据,这通常需要至少一个低级 I/O 操作。
如果有安全管理器,则调用其 checkRead 方法,并以文件参数的路径名作为其参数,以查看是否允许对文件进行读取访问。如果该模式允许写入,还使用路径参数调用安全管理器的 checkWrite 方法,以查看是否允许对文件进行写入访问。
参数:
参数名称 | 参数描述 |
---|---|
file | 文件对象 |
mode | 访问模式,如上所述 |
Throws:
Throw名称 | Throw描述 |
---|---|
IllegalArgumentException | 如果模式参数不等于“r”、“rw”、“rws”或“rwd”之一 |
FileNotFoundException | 如果模式为“r”但给定的文件对象不表示现有的常规文件,或者如果模式以“rw”开头但给定的文件对象不表示现有的可写常规文件和该文件的新常规文件 无法创建名称,或者在打开或创建文件时出现其他错误 |
SecurityException | 如果安全管理器存在且其 checkRead 方法拒绝对文件的读访问或模式为“rw”且安全管理器的 checkWrite 方法拒绝对文件的写访问 |
方法详情
getFD
public final FileDescriptor getFD() throws IOException
返回与此流关联的不透明文件描述符对象。
返回:
与此流关联的文件描述符对象。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
getChannel
public final FileChannel getChannel()
返回与此文件关联的唯一 FileChannel 对象。
返回通道的位置将始终等于 getFilePointer 方法返回的该对象的文件指针偏移量。 更改此对象的文件指针偏移量,无论是显式地还是通过读取或写入字节,都会改变通道的位置,反之亦然。 通过此对象更改文件的长度将更改通过文件通道看到的长度,反之亦然。
返回:
与此文件关联的文件通道
Since:
1.4
read
public int read() throws IOException
从此文件中读取一个字节的数据。 该字节以 0 到 255 (0x00-0x0ff) 范围内的整数形式返回。 如果还没有输入可用,则此方法会阻塞。
尽管 RandomAccessFile 不是 InputStream 的子类,但此方法的行为方式与 InputStream 的 InputStream#read() 方法完全相同。
返回:
数据的下一个字节,如果已到达文件末尾,则为 -1。
Throws:
Throw名称 | Throw描述 |
---|---|
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。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果由于文件结尾以外的任何原因无法读取第一个字节,或者随机访问文件已关闭,或者发生其他一些 I/O 错误。 |
NullPointerException | 如果 b 为空。 |
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。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果由于文件结尾以外的任何原因无法读取第一个字节,或者随机访问文件已关闭,或者发生其他一些 I/O 错误。 |
NullPointerException | 如果 b 为空。 |
readFully
public final void readFully(byte[] b) throws IOException
从此文件中读取 b.length 个字节到字节数组中,从当前文件指针开始。 此方法从文件中重复读取,直到读取请求的字节数。 此方法会一直阻塞,直到读取到请求的字节数、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readFully
参数:
参数名称 | 参数描述 |
---|---|
b | 读取数据的缓冲区。 |
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取所有字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readFully
public final void readFully(byte[] b, int off, int len) throws IOException
从当前文件指针开始,从该文件准确读取 len 个字节到字节数组中。 此方法从文件中重复读取,直到读取请求的字节数。 此方法会一直阻塞,直到读取到请求的字节数、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readFully
参数:
参数名称 | 参数描述 |
---|---|
b | 读取数据的缓冲区。 |
off | 数据的起始偏移量。 |
len | 要读取的字节数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取所有字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
skipBytes
public int skipBytes(int n) throws IOException
尝试跳过 n 个字节的输入丢弃跳过的字节。
此方法可能会跳过一些较小的字节数,可能为零。 这可能是由多种情况中的任何一种造成的; 在跳过 n 个字节之前到达文件末尾只是一种可能性。 此方法从不抛出 EOFException。 返回实际跳过的字节数。 如果 n 为负数,则不跳过任何字节。
指定者:
接口 DataInput 中的 skipBytes
参数:
参数名称 | 参数描述 |
---|---|
n | 要跳过的字节数。 |
返回:
跳过的实际字节数。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(int b) throws IOException
将指定的字节写入此文件。 写入从当前文件指针开始。
指定者:
写入接口DataOutput
参数:
参数名称 | 参数描述 |
---|---|
b | 要写入的字节。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(byte[] b) throws IOException
将指定字节数组中的 b.length 个字节写入此文件,从当前文件指针开始。
指定者:
写入接口DataOutput
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
write
public void write(byte[] b, int off, int len) throws IOException
从偏移量 off 开始的指定字节数组中写入 len 个字节到此文件。
指定者:
写入接口DataOutput
参数:
参数名称 | 参数描述 |
---|---|
b | 数据。 |
off | 数据中的起始偏移量。 |
len | 要写入的字节数。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
getFilePointer
public long getFilePointer() throws IOException
返回此文件中的当前偏移量。
返回:
从文件开头的偏移量,以字节为单位,发生下一次读取或写入。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
seek
public void seek(long pos) throws IOException
设置文件指针偏移量,从该文件的开头开始测量,下一次读取或写入发生在该位置。 偏移量可以设置在文件末尾之外。 设置超出文件末尾的偏移量不会更改文件长度。 只有在将偏移量设置到文件末尾之后,文件长度才会改变。
参数:
参数名称 | 参数描述 |
---|---|
pos | 偏移位置,以从文件开头开始的字节为单位,设置文件指针的位置。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果 pos 小于 0 或发生 I/O 错误。 |
length
public long length() throws IOException
返回此文件的长度。
返回:
此文件的长度,以字节为单位。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
setLength
public void setLength(long newLength) throws IOException
设置此文件的长度。
如果 length 方法返回的文件的当前长度大于 newLength 参数,则文件将被截断。 在这种情况下,如果 getFilePointer 方法返回的文件偏移量大于 newLength,则在此方法返回后,偏移量将等于 newLength。
如果 length 方法返回的文件的当前长度小于 newLength 参数,则文件将被扩展。 在这种情况下,未定义文件扩展部分的内容。
参数:
参数名称 | 参数描述 |
---|---|
newLength | 所需的文件长度 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误 |
Since:
1.2
close
public void close() throws IOException
关闭此随机访问文件流并释放与该流关联的所有系统资源。 关闭的随机存取文件无法执行输入或输出操作,也无法重新打开。
如果此文件具有关联的通道,则该通道也将关闭。
指定者:
在接口 AutoCloseable 中关闭
指定者:
在接口Closeable中关闭
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
readBoolean
public final boolean readBoolean() throws IOException
从此文件中读取一个布尔值。 此方法从文件中读取单个字节,从当前文件指针开始。 值 0 表示假。 任何其他值都表示真。 此方法一直阻塞,直到读取字节、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readBoolean
返回:
读取的布尔值。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果这个文件已经结束。 |
IOException | 如果发生 I/O 错误。 |
readByte
public final byte readByte() throws IOException
从此文件中读取一个有符号的 8 位值。 此方法从文件中读取一个字节,从当前文件指针开始。 如果读取的字节为 b,其中 0 <= b <= 255,则结果为:
(byte)(b)
此方法一直阻塞,直到读取字节、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readByte
返回:
此文件的下一个字节为有符号的 8 位字节。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果这个文件已经结束。 |
IOException | 如果发生 I/O 错误。 |
readUnsignedByte
public final int readUnsignedByte() throws IOException
从此文件中读取一个无符号八位数。 此方法从该文件中读取一个字节,从当前文件指针开始,并返回该字节。
此方法一直阻塞,直到读取字节、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readUnsignedByte
返回:
此文件的下一个字节,解释为无符号八位数。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果这个文件已经结束。 |
IOException | 如果发生 I/O 错误。 |
readShort
public final short readShort() throws IOException
从此文件中读取一个带符号的 16 位数字。 该方法从该文件中读取两个字节,从当前文件指针开始。 如果按顺序读取的两个字节是 b1 和 b2,其中两个值中的每一个都介于 0 和 255 之间,包括 0 和 255,则结果等于:
(short)((b1 << 8) | b2)
此方法一直阻塞,直到读取了两个字节、检测到流结束或抛出异常。
指定者:
接口 DataInput 中的 readShort
返回:
该文件的下两个字节,解释为带符号的 16 位数字。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取两个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readUnsignedShort
public final int readUnsignedShort() throws IOException
从此文件中读取一个无符号的 16 位数字。 此方法从文件中读取两个字节,从当前文件指针开始。 如果按顺序读取的字节是 b1 和 b2,其中 0 <= b1,b2 <= 255,则结果等于:
(b1 << 8) | b2
此方法一直阻塞,直到读取了两个字节、检测到流结束或抛出异常。
指定者:
接口 DataInput 中的 readUnsignedShort
返回:
此文件的下两个字节,解释为无符号 16 位整数。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取两个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readChar
public final char readChar() throws IOException
从此文件中读取一个字符。 此方法从文件中读取两个字节,从当前文件指针开始。 如果按顺序读取的字节是 b1 和 b2,其中 0 <= b1,b2 <= 255,则结果等于:
(char)((b1 << 8) | b2)
此方法一直阻塞,直到读取了两个字节、检测到流结束或抛出异常。
指定者:
接口 DataInput 中的 readChar
返回:
该文件的下两个字节,解释为一个字符。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取两个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readInt
public final int readInt() throws IOException
从此文件中读取一个带符号的 32 位整数。 此方法从文件中读取 4 个字节,从当前文件指针开始。 如果按顺序读取的字节是 b1、b2、b3 和 b4,其中 0 <= b1、b2、b3、b4 <= 255,则结果等于:
(b1 << 24) | (b2 << 16) + (b3 << 8) + b4
此方法一直阻塞,直到读取了四个字节、检测到流的结尾或抛出异常。
指定者:
接口 DataInput 中的 readInt
返回:
此文件的下四个字节,解释为 int。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取四个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readLong
public final 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 个字节、检测到流结束或引发异常。
指定者:
接口 DataInput 中的 readLong
返回:
该文件的接下来的 8 个字节,解释为 long。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取八个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readFloat
public final float readFloat() throws IOException
从此文件中读取一个浮点数。 此方法从当前文件指针开始读取一个 int 值,就像通过 readInt 方法一样,然后使用 Float 类中的 intBitsToFloat 方法将该 int 转换为浮点数。
此方法一直阻塞,直到读取了四个字节、检测到流的结尾或抛出异常。
指定者:
接口 DataInput 中的 readFloat
返回:
此文件的下四个字节,解释为浮点数。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取四个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readDouble
public final double readDouble() throws IOException
从此文件中读取一个 double。 此方法从当前文件指针开始读取一个 long 值,就像通过 readLong 方法一样,然后使用 Double 类中的 longBitsToDouble 方法将该 long 转换为 double。
此方法一直阻塞,直到读取了 8 个字节、检测到流结束或引发异常。
指定者:
接口 DataInput 中的 readDouble
返回:
此文件的下八个字节,解释为双精度。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取八个字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
readLine
public final String readLine() throws IOException
从此文件中读取下一行文本。此方法从文件中连续读取字节,从当前文件指针开始,直到到达行终止符或文件末尾。通过获取字符低八位的字节值并将字符的高八位设置为零,将每个字节转换为字符。因此,此方法不支持完整的 Unicode 字符集。
一行文本由回车符 (‘\r’)、换行符 (‘\n’)、紧跟换行符的回车符或文件结尾终止。行终止字符被丢弃,并且不包含在返回的字符串中。
此方法阻塞,直到读取换行符、读取回车符和其后的字节(以查看是否为换行符)、到达文件末尾或引发异常。
指定者:
接口 DataInput 中的 readLine
返回:
此文件中的下一行文本,如果在读取一个字节之前遇到文件结尾,则为 null。
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
readUTF
public final String readUTF() throws IOException
从此文件中读取字符串。 该字符串已使用修改后的 UTF-8 格式进行编码。
从当前文件指针开始读取前两个字节,就像通过 readUnsignedShort 一样。 该值给出了编码字符串中的后续字节数,而不是结果字符串的长度。 随后的字节被解释为字节编码字符在修改的 UTF-8 格式,并被转换成字符。
此方法阻塞,直到读取所有字节、检测到流的结尾或引发异常。
指定者:
接口 DataInput 中的 readUTF
返回:
一个 Unicode 字符串。
Throws:
Throw名称 | Throw描述 |
---|---|
EOFException | 如果此文件在读取所有字节之前到达末尾。 |
IOException | 如果发生 I/O 错误。 |
UTFDataFormatException | 如果字节不代表 Unicode 字符串的有效修改 UTF-8 编码。 |
writeBoolean
public final void writeBoolean(boolean v) throws IOException
将布尔值作为单字节值写入文件。 值 true 被写为值(字节)1; 值 false 被写为值(字节)0。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeBoolean
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的布尔值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeByte
public final void writeByte(int v) throws IOException
将一个字节作为单字节值写入文件。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeByte
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的字节值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeShort
public final void writeShort(int v) throws IOException
以两个字节的形式向文件写入一个short,首先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeShort
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 short 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeChar
public final void writeChar(int v) throws IOException
将 char 作为两字节值写入文件,先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeChar
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 char 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeInt
public final void writeInt(int v) throws IOException
将 int 作为四个字节写入文件,先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeInt
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 int。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeLong
public final void writeLong(long v) throws IOException
将 long 作为 8 个字节写入文件,先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeLong
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 long 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeFloat
public final void writeFloat(float v) throws IOException
使用 Float 类中的 floatToIntBits 方法将 float 参数转换为 int,然后将该 int 值作为四字节数量写入文件,先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeFloat
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的浮点值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeDouble
public final void writeDouble(double v) throws IOException
使用 Double 类中的 doubleToLongBits 方法将 double 参数转换为 long,然后将该 long 值作为 8 字节数量写入文件,先是高字节。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeDouble
参数:
参数名称 | 参数描述 |
---|---|
v | 要写入的 double 值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeBytes
public final void writeBytes(String s) throws IOException
将字符串作为字节序列写入文件。 字符串中的每个字符通过丢弃其高八位按顺序写出。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeBytes
参数:
参数名称 | 参数描述 |
---|---|
s | 要写入的字节串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeChars
public final void writeChars(String s) throws IOException
将字符串作为字符序列写入文件。 每个字符都被写入数据输出流,就像通过 writeChar 方法一样。 写入从文件指针的当前位置开始。
指定者:
接口 DataOutput 中的 writeChars
参数:
参数名称 | 参数描述 |
---|---|
s | 要写入的字符串值。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |
writeUTF
public final void writeUTF(String str) throws IOException
以与机器无关的方式使用修改后的 UTF-8 编码将字符串写入文件。
首先,将两个字节写入文件,从当前文件指针开始,就好像通过 writeShort 方法给出了后面的字节数。 这个值是实际写出的字节数,而不是字符串的长度。 在长度之后,按顺序输出字符串的每个字符,对每个字符使用修改后的 UTF-8 编码。
指定者:
接口 DataOutput 中的 writeUTF
参数:
参数名称 | 参数描述 |
---|---|
str | 要写入的字符串。 |
Throws:
Throw名称 | Throw描述 |
---|---|
IOException | 如果发生 I/O 错误。 |