欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在文件指定位置读取和写入内容RandomAccessFile

程序员文章站 2022-07-01 16:55:27
...

RandomAccessFile是属于随机读取类,是可以对文件本身的内容直接随机进行操作的,可以在文件的指定位置
的读取和写入内容,这在很多时候都是很方便的。

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

/**
 * RandomAccessFile是属于随机读取类,是可以对文件本身的内容直接随机进行操作的,就是说可以指定位置
 * 的读取和写入内容
 * @author andy
 *
 */
public class RandomAccessFileTest {

	public static void main(String args[]) throws IOException {
		write();
		read();
	}
	
	public static void write() throws IOException {
		//以读写的方式来访问该文件
		RandomAccessFile raf = new RandomAccessFile("D:\\test.txt", "rw");
		raf.writeBytes("Hello World!");
		raf.writeBoolean(true);
		raf.writeInt(30);
		raf.writeDouble(3.56);
		raf.close();
	}
	
	public static void read() throws IOException {
		RandomAccessFile raf = new RandomAccessFile("D:\\test.txt", "r");
		raf.seek(12);//设置指针的位置
		boolean booleanValue = raf.readBoolean();
		int intValue = raf.readInt();
		double doubleValue = raf.readDouble();
		raf.seek(0);//设置指针的位置为文件的开始部分
		byte[] bytes = new byte[12];
		for (int i=0; i<bytes.length; i++)
			bytes[i] = raf.readByte();//每次读一个字节,并把它赋值给字节bytes[i]
		String stringValue = new String(bytes);
		raf.skipBytes(1);//指针跳过一个字节
		int intValue2 = raf.readInt();
		raf.close();
		System.out.println(booleanValue);
		System.out.println(intValue);
		System.out.println(doubleValue);
		System.out.println(stringValue);
		System.out.println(intValue2);
	}
	
}