笔记(十):RandomAccessFile类(四):RAF中指针的操作与移动

RAF中指针的操作与移动

RAF中指针的操作与移动

package com.tedu.raf;

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 读写数据以及RAF的指针操作
 * @author Wildmess
 *
 */
public class RafSeekDemo {
	public static void main(String[] args) throws IOException {
		RandomAccessFile raf = new RandomAccessFile("abc.txt", "rw");
		/*
		 * long getFilePointer()
		 * 获取当前RAF的指针位置
		 */
		long pos =  raf.getFilePointer();
		System.out.println("指针所在位置pos:" + pos);//0
		
		//定义一个int的最大值,然后写入文件中
		int max = Integer.MAX_VALUE;
		raf.write(max>>>24);		
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//1
		raf.write(max>>>16);		
		raf.write(max>>>8);		
		raf.write(max);		
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//4
		raf.writeLong(123L);
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//12
		raf.writeDouble(123.123);
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//20
		
		//读取文件数据
		/*
		 * 指针移动到指定位置
		 * void seek(long pos)
		 */
		raf.seek(0);
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//0
		
		/*
		 * RAF同样提供了读取基本数据类型的相关方法:
		 * int radInt()
		 * 连续读取4个字节将其还原成int值
		 * 
		 * readLong(),readDouble(),readFloat()……
		 */
		int i = raf.readInt();
		System.out.println(i);//Integer.MAX_VALUE
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//4
		raf.seek(4);
		long l = raf.readLong();
		System.out.println(l);//123L
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//12
		double d= raf.readDouble();
		System.out.println(d);//123.123
		System.out.println("指针所在位置pos:" + raf.getFilePointer());//20
		
		System.out.println("程序结束!");
		raf.close();
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值