Java中RandomAccessFile用法

 

文章目录

介绍
RandomAccessFile 使用
创建对象
写方法
读取方法

介绍

java.io.RandomAccessFile
1、读写文件的工具
2、将文件中的字节数据,当作数组,用下标访问指定位置的字节值

RandomAccessFile 既可以读取文件内容,也可以向文件输出数据。同时,RandomAccessFile 支持“随机访问”的方式,程序快可以直接跳转到文件的任意地方来读写数据。

由于 RandomAccessFile 可以自由访问文件的任意位置,所以如果需要访问文件的部分内容,而不是把文件从头读到尾,使用 RandomAccessFile 将是更好的选择。

RandomAccessFile 允许自由定义文件记录指针,RandomAccessFile 可以不从开始的地方开始输出,因此 RandomAccessFile 可以向已存在的文件后追加内容。如果程序需要向已存在的文件后追加内容,则应该使用 RandomAccessFile。

RandomAccessFile 的方法虽然多,但它有一个最大的局限,就是只能读写文件,不能读写其他 IO 节点。

RandomAccessFile 的一个重要使用场景就是网络请求中的多线程下载及断点续传。

关于字节
计算机中的所有数据都是由 0、1 组成,每 8 位为 1 个字节,读写数据的时候都是按字节读写的。

每 4 位可以由一个十六进制字符表示,如
10010110 00010101 11111001
96             15             f9

所以每两个十六进制字符就可以表示 1 个字节。

abc 这三个字母在计算机中的存储是这样的:
a 在计算机中存储的十进制值是 97,二进制为 01100001, 十六进制为 61
b 十进制 98,二进制为 01100010,十六进制为 62
c 十进制 99,二进制为 01100011,十六进制为 63

RandomAccessFile 使用

创建对象

RandomAccessFile raf = new RandomAccessFile(文件,r);
RandomAccessFile raf = new RandomAccessFile(文件,rw);
复制代码

这个文件可以是字符串d:/abc,也可以是封装好的File对象d:/abc

r 为只读,rw 为读写。读文件是输入,读入内存。写文件是输出,都是相对内存来说的。

写方法

write(int b)

int 四个字节中,只输出末尾的一个字节值:[1][2][3][4]->[4]
适用于单字节范围内的值,切掉前边3个不会有数据损失

write(byte[] buff)

输出数组中全部字节值

write(byte[] buff,int from,int length)

输出数组中从 from 开始的 length 个

栗子1:写入练习

public class Main {
    public static void main(String[] args) throws Exception {
        /*
         * 1、如果文件不存在,新建文件
         * 2、如果目录不存在,出现异常
         */
        RandomAccessFile raf = new RandomAccessFile("d:/abc/
  • 7
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值