
(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); } }
发表评论
最新留言
关注你微信了!
[***.104.42.241]2025年04月17日 20时58分18秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
基于单片机简易信号误差分析设计-全套资料
2019-03-05
基于单片机简易脉搏测量仪系统设计-毕设课设资料
2019-03-05
Javascript中String支持使用正则表达式的四种方法
2019-03-05
eclipse引用sun.misc开头的类
2019-03-05
Servlet2.5的增删改查功能分析与实现------删除功能(四)
2019-03-05
spring启动错误:Could not resolve placeholder
2019-03-05
查询某表格上次进行vacuum的时间
2019-03-05
invalid byte sequence for encoding
2019-03-05
redis向数组中添加值并查看数组长度
2019-03-05
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
2019-03-05
技术美术面试问题整理
2019-03-05
C++学习记录 五、C++提高编程(2)
2019-03-05
ORB-SLAM2:LoopClosing线程学习随笔【李哈哈:看看总有收获篇】
2019-03-05
js求阶乘
2019-03-05
简单的xml读取存储方法(未优化)
2019-03-05
Nginx---惊群
2019-03-05
项目中常用的审计类型概述
2019-03-05
(九)实现页面底部购物车的样式
2019-03-05