java--基础--16.10--IO流--随机访问流RandomAccessFile

java--基础--16.10--IO流--随机访问流RandomAccessFile


1、RandomAccessFile

RandomAccessFile  extends Object  implements DataOutput, DataInput, Closeable
  • RandomAccessFile类不属于流,是Object类的子类。
  • 融合了InputStream和OutputStream的功能。
  • 支持对文件的随机访问读取和写入。

2、构造方法

  • public RandomAccessFile(String name,String mode):第一个参数是文件路径,第二个参数是操作文件的模式。
  • RandomAccessFile(File file, String mode):创建从中读取和向其中写入的随机访问文件流,该文件由 File 参数指定
    • mode:
      • “r”:以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException。
      • “rw”:打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。
      • “rws”:打开以便读取和写入,对于 “rw”,还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。
      • “rwd”:打开以便读取和写入,对于 “rw”,还要求对文件内容的每个更新都同步写入到底层存储设备。

3、常用方法

  • getFilePointer():返回此文件中的当前偏移量。
  • void seek(long pos):设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。
  • long read基本类型(基本类型 v)
  • void write基本类型(基本类型 v)

4、案例

// 创建随机访问流对象
		RandomAccessFile wr = new RandomAccessFile("text.txt", "rw");
		wr.writeInt(12);
		wr.writeChar('b');
		wr.writeUTF("创建随机访问流对象");
		wr.close();
		// 创建随机访问流对象
		RandomAccessFile re = new RandomAccessFile("text.txt", "rw");

		int i = re.readInt();
		System.out.println(i);
		// 通过 getFilePointer方法读取文件指针
		System.out.println("当前文件的指针位置是:" + re.getFilePointer());

		char ch = re.readChar();
		System.out.println(ch);
		System.out.println("当前文件的指针位置是:" + re.getFilePointer());

		String s = re.readUTF();
		System.out.println(s);
		System.out.println("当前文件的指针位置是:" + re.getFilePointer());

		//通过 seek 方法设置文件指针
		re.seek(4);
		ch = re.readChar();
		System.out.println(ch);
输出:
12
当前文件的指针位置是:4
b
当前文件的指针位置是:6
创建随机访问流对象
当前文件的指针位置是:35
b

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值