(Java)RandomAccessFile 类
发布日期:2021-05-07 19:39:39 浏览次数:13 分类:精选文章

本文共 1690 字,大约阅读时间需要 5 分钟。

RandomAccessFile 类操作文件内容的详细指南

File 类负责文件管理操作,而RandomAccessFile 类则专注于文件内容的随机访问。它允许程序员以随机读取和写入的方式操作文件,适用于处理大文件或特定内容的读写需求。

使用RandomAccessFile类时,文件可以以“r”(只读)、“r+”(读取和写入)或“rw”(读取和写入,自动创建文件)模式打开。如果使用“rw”模式,系统会自动检测文件是否存在,并在文件不存在的情况下自动生成。

import java.io.File;import java.io.RandomAccessFile;
public class Test {
public static void main(String[] args) throws Exception {
File f = new File("D:" + File.separator + "test.txt");
RandomAccessFile rdf = new RandomAccessFile(f, "rw");
String name = "str1";
int age = 30;
rdf.writeBytes(name.getBytes());
rdf.writeInt(age);
name = "str2";
age = 31;
rdf.writeBytes(name.getBytes());
rdf.writeInt(age);
rdf.close();
}
}

需要注意的是,使用RandomAccessFile类写入的整型数据默认以固定大小(如4字节)的形式存储,这意味着直接打开文件时这些数据不可见。读取时应采用“r”模式以只读方式打开文件。

import java.io.File;import java.io.RandomAccessFile;
public class Test {
public static void main(String[] args) throws Exception {
File f = new File("D:" + File.separator + "test.txt");
RandomAccessFile rdf = new RandomAccessFile(f, "r");
byte[] buffer = new byte[8];
rdf.skipBytes(12);
for (int i = 0; i < buffer.length; i++) {
buffer[i] = rdf.readByte();
}
String name = new String(buffer);
int age = rdf.readInt();
System.out.println("第二个人信息:姓名:" + name + ";年龄:" + age);
rdf.seek(0);
buffer = new byte[8];
for (int i = 0; i < buffer.length; i++) {
buffer[i] = rdf.readByte();
}
name = new String(buffer);
age = rdf.readInt();
System.out.println("第一个人信息:姓名:" + name + ";年龄:" + age);
}
}
上一篇:一篇文章带你搞定 Java 中字节流的基本操作(InputStream / OutputStream)
下一篇:一篇文章带你搞定 Java 中操作文件的类 - File

发表评论

最新留言

关注你微信了!
[***.104.42.241]2025年04月17日 20时58分18秒