鸿蒙OS RandomAccessFile

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 错误。
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《鸿蒙OS RandomAccessFile》
文章链接:https://zhuji.vsping.com/314736.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。