Java中IO流 RandomAccessFile类实例详解
发布时间 - 2026-01-11 01:07:05 点击率:次Java中IO流 RandomAccessFile类实例详解

RandomAccessFile
- java提供的对文件内容的访问,既可以读文件,也可以写文件。
- 支持随机访问文件,可以访问文件的任意位置。
- java文件模型,在硬盘上的文件是byte byte byte存储的,是数据的集合
- 打开文件,有两种模式,“rw”读写、“r”只读;RandomAccessFile raf = new RandomAccessFile(file, "rw");,文件指针,打开文件时指针在开头 point = 0;
- 写方法, raf.write()-->只写一个字节(后八位),同时指针指向下一个位置,准备再次写入
- 读方法,int b = raf.read()-->读一个字节
- 文件读写完成以后一定要关闭(Oracle官方说明)
RafDemo.java
package com.test.io;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.util.Arrays;
public class RafDemo {
public static void main(String[] args) throws IOException {
File demo = new File("demo");
if (!demo.exists()) {
demo.mkdir();
}
File file = new File(demo, "raf.dat");
if (!file.exists()) {
file.createNewFile();
}
RandomAccessFile raf = new RandomAccessFile(file, "rw");
System.out.println(raf.getFilePointer());
raf.write('A');//一个char型占两个字节,但是write一次只写入一个字节(A字符的后八位)
System.out.println(raf.getFilePointer());
raf.write('B');
int i = 0x7fffffff;
raf.write(i >>> 24);//写入i的高八位
raf.write(i >>> 16);
raf.write(i >> 8);
raf.write(i);
System.out.println(raf.getFilePointer());
//直接写入一个int
raf.writeInt(i);
String s = "你";
byte[] b = s.getBytes("utf8");
raf.write(b);
System.out.println(raf.length());
//读文件,必须把指针移到头部
raf.seek(0);
//一次性读取,把文件中的内容都读到字节数组中
byte[] buf = new byte[(int) raf.length()];
raf.read(buf);
System.out.println(Arrays.toString(buf));
for (byte c : buf) {
System.out.print(Integer.toHexString(c & 0xff) + " ");
}
//关闭文件
raf.close();
}
}
执行结果:
0 1 6 13 [65, 66, 127, -1, -1, -1, 127, -1, -1, -1, -28, -67, -96] 41 42 7f ff ff ff 7f ff ff ff e4 bd a0
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
# Java
# IO流
# RandomAccessFile类
# RandomAccessFile类详解
# Java利用File类创建文件的示例代码
# Java文件操作之IO流 File类的使用详解
# Java IO流 File类的常用API实例
# 一起来了解Java的File类和IO流
# 希望能
# 有两种
# 谢谢大家
# 既可
# 移到
# 读到
# 组中
# 只写
# brush
# package
# test
# class
# pre
# RafDemo
# io
# Arrays
# util
# public
# void
# static
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel如何实现一对一模型关联?(Eloquent示例)
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
如何快速搭建高效可靠的建站解决方案?
Laravel如何生成API文档?(Swagger/OpenAPI教程)
如何在万网开始建站?分步指南解析
Python自动化办公教程_ExcelWordPDF批量处理案例
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
海南网站制作公司有哪些,海口网是哪家的?
动图在线制作网站有哪些,滑动动图图集怎么做?
Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】
通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】
利用vue写todolist单页应用
轻松掌握MySQL函数中的last_insert_id()
Laravel如何处理和验证JSON类型的数据库字段
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
如何快速生成可下载的建站源码工具?
怎么用AI帮你设计一套个性化的手机App图标?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
JavaScript如何实现继承_有哪些常用方法
详解ASP.NET 生成二维码实例(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
如何在阿里云通过域名搭建网站?
如何在IIS中新建站点并配置端口与物理路径?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
微信小程序 wx.uploadFile无法上传解决办法
Linux系统命令中screen命令详解
Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转
网易LOFTER官网链接 老福特网页版登录地址
Laravel Octane如何提升性能_使用Laravel Octane加速你的应用
网站制作免费,什么网站能看正片电影?
如何在Ubuntu系统下快速搭建WordPress个人网站?
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
网站优化排名时,需要考虑哪些问题呢?
iOS UIView常见属性方法小结
如何快速搭建自助建站会员专属系统?
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何快速搭建FTP站点实现文件共享?
如何在IIS中配置站点IP、端口及主机头?
Laravel模型事件有哪些_Laravel Model Event生命周期详解
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
如何在建站之星绑定自定义域名?
大同网页,大同瑞慈医院官网?
微信小程序 HTTPS报错整理常见问题及解决方案
敲碗10年!Mac系列传将迎来「触控与联网」双革新
laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法

