此类用于读取和写入随机访问文件。随机访问文件的行为类似于大字节数组。有一个指向该数组的游标, 称为文件指针, 通过移动游标我们可以执行读写操作。如果在读取所需的字节数之前已到达文件末尾, 则将引发EOFException。它是IOException的一种。
建设者
建设者 | 描述 |
---|---|
RandomAccessFile(File file, String mode) | 创建一个随机访问文件流, 以读取和可选地写入File参数指定的文件。 |
RandomAccessFile(String name, String mode) | 创建一个随机访问文件流, 以读取具有指定名称的文件, 也可以选择写入该文件。 |
方法
修饰符和类型 | 方法 | 方法 |
---|---|---|
void | close() | 它关闭此随机访问文件流, 并释放与该流关联的所有系统资源。 |
FileChannel | getChannel() | 它返回与此文件关联的唯一FileChannel对象。 |
int | readInt() | 它从该文件读取一个带符号的32位整数。 |
String | readUTF() | 它从该文件中读取一个字符串。 |
void | seek(long pos) | 它设置文件指针偏移量, 从该文件的开头开始测量, 在该位置下一次读取或写入。 |
void | writeDouble(double v) | 它使用Double类中的doubleToLongBits方法将double参数转换为long, 然后将该long值作为八字节数量写入文件, 高字节在前。 |
void | writeFloat(float v) | 它使用Float类中的floatToIntBits方法将float参数转换为int, 然后将该int值作为四字节数量的文件写入文件, 高字节在前。 |
void | write(int b) | 它将指定的字节写入此文件。 |
int | read() | 它从该文件读取一个字节的数据。 |
long | length() | 它返回此文件的长度。 |
void | seek(long pos) | 它设置文件指针偏移量, 从该文件的开头开始测量, 在该位置下一次读取或写入。 |
例
import java.io.IOException;
import java.io.RandomAccessFile;
public class RandomAccessFileExample {
static final String FILEPATH ="myFile.TXT";
public static void main(String[] args) {
try {
System.out.println(new String(readFromFile(FILEPATH, 0, 18)));
writeToFile(FILEPATH, "I love my country and my people", 31);
} catch (IOException e) {
e.printStackTrace();
}
}
private static byte[] readFromFile(String filePath, int position, int size)
throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "r");
file.seek(position);
byte[] bytes = new byte[size];
file.read(bytes);
file.close();
return bytes;
}
private static void writeToFile(String filePath, String data, int position)
throws IOException {
RandomAccessFile file = new RandomAccessFile(filePath, "rw");
file.seek(position);
file.write(data.getBytes());
file.close();
}
}
myFile.TXT包含文本“此类用于读取和写入随机访问文件”。
运行程序后, 它将包含
本课程用于阅读我爱我的国家和人民。
评论前必须登录!
注册