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);
}
}