Java IO(六、随机存取文件流RandomAccessFile)

本文介绍了Java中的RandomAccessFile,它是一种强大的文件访问类,支持随机读写。通过RandomAccessFile,程序可以方便地跳转到文件任意位置进行读写操作。文章详细讲解了构造方法、访问模式以及指针位置的相关方法,并通过实例展示了如何进行数据的读写和插入操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java IO. RandomAccessFile

RandomAccessFile 是IO体系中功能强大的文件内容访问类,声明在java.io包下,但直接继承于java.lang.Object类。并且它实现了DataInput、DataOutput这两个接口,它提供了众多的方法来访问文件内容,既可以读也可以写。与普通的IO流不同的是,RandomAccessFile 支持"随机访问",程序可以直接跳转到文件的任意地方来读写数据。

构造方法:

  • public RandomAccessFile(File file, String mode): 创建随机访问文件流,从File参数指定的文件中读取,也可以选择写入。
  • public RandomAccessFile(String name, String mode):创建随机访问文件流,从具有指定名称的文件中读取,也可以选择写入。

参数mode指定RandomAccessFile的访问模式:

  • r: 以只读方式打开。
  • rw:打开支持读取和写入。
  • rwd:打开支持读取和写入,并且同步文件内容的更新。
  • rws:打开支持读取和写入;并且同步文件内容和元数据的更新。

如果模式为只读r,会去读取一个已经存在的文件,如果读取的文件不存在则会出现异常。如果模式为读写rw,如果文件存在会直接操作,如果文件不存在则会去创建文件。

指针位置相关方法:

  • long getFilePointer():获取文件记录指针的当前位置
  • void seek(long pos):将文件记录指针定位到pos位置

1、实现数据的读写操作

RandomAccessFile可以作为一个输入流,也可以作为一个输出流
当其作为输出流时,入伙写出到的文件不存在,则在执行过程中自动创建。如果写出到的文件存在,则会对原有文件内容进行覆盖(默认从头覆盖)。

import java.io.*;

public class RandomAccessFileTest {
   
    public static void main(String[] args) {
   
        RandomAccessFile raf1 = null;
        RandomAccessFile raf2 = null;
        try {
   
            raf1 = new RandomAccessFile("C:\\Users\\Administrator\\Desktop\\test.txt", "r");//只读
            raf2 = new RandomAccessFile("C:\\Users\\Administrator\\Desktop\\test1.txt", "rw");//可读写
            System.out.println("当前的RandomAccessFile的初始指针位置是:" + raf1.
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值