Java—IO流 RandomAccessFile类
2024-09-05 03:46:45
- 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();
} }
执行结果:
[, , , -, -, -, , -, -, -, -, -, -]
7f ff ff ff 7f ff ff ff e4 bd a0
最新文章
- POJ 1061 青蛙的约会 扩展欧几里得
- Python 创建函数和代码重用
- 队列与DelphiXe新语法
- Mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost'(using password: YSE)
- python参考手册--第4、5、6、7章
- 07_控制线程_join_线程插队
- 学习笔记DAY2
- AVOS Cloud Hackathon - SegmentFault
- java.io.EOFException解决
- android usb挂载分析---MountService启动
- ES6躬行记(21)——类的继承
- C#删除文件夹以及删除文件
- java面试题大全-基础方面 答案自己写
- STM32 SPI接口的NSS引脚
- Bootstrap自学笔记
- PHP实现对站点内容外部链接的过滤方法
- 用 Redis Desktop Manager 远程连接 redis 数据库。
- 【博弈论】【SG函数】Codeforces Round #188 (Div. 1) D. Game with Powers
- 目标是:互联网方向的Java开发工程师
- linux host=${host:-";localhost";}使用方法
热门文章
- Kibana6.x.x源码分析--如何使用kibana的savedObjectType对象
- BZOJ 3224 Treap
- Putty之public key ssh认证入门
- C++ GUI Qt4编程(05)-2.2GoToCell
- centos yum安装高版本php,apache,mysql
- PIE SDK最小噪声变换
- python练习六十九:urllib爬取练习
- (转)Linux SSH批量分发管理
- opengl键盘回调函数不能获取Ctrl+c的问题
- jQuery中的事件——《锋利的JQuery》