黑马程序员技术交流社区
标题:
RandomAccessFile
[打印本页]
作者:
心在左边跳
时间:
2015-7-9 14:09
标题:
RandomAccessFile
随机访问文件,自身具备读取方法
通过SkipBytes(int x),seek(int x)到达随机访问。
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
/**
* 该类不算IO体系中子类,直接继承Object
*但是它是IO包中成员,因为它具备读和写功能
*内部封装了一个数组,而且通过指针对数组的数据元素进行操作
*可以通过getFilePointer获取指针位置
*seek改变指针位置
*
*其实完成读写的原理就是内部封装了字节输入流和输出流
*通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式
*只读r,读写rw等
*如果模式只读r,不会创建文件,会读取一个存在文件,如果文件不存在,出现异常
*如果模式读写rw,操作的文件不存在,自动创建如果存在,不会覆盖。
*/
public class RandomAccessFileDemo {
public static void main(String[] args) throws IOException {
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
raf.write("李斯".getBytes());
//按四个字节将 int 写入该文件,先写高字节。
raf.writeInt(97);
raf.close();
RandomAccessFile raf1=new RandomAccessFile("ran.txt","rw");
byte[] buf=new byte[4];
raf1.read(buf);
System.out.println(new String(buf));
//调整指针
//raf1.seek(4);
//跳过指定的字节数,只能向后跳
raf.skipBytes(0);
int age =raf1.readInt();
System.out.println(age);
raf1.close();
writeFile();
}
//随机写数据
public static void writeFile() throws IOException{
RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");
raf.seek(8*3);
raf.write("周期".getBytes());
raf.writeInt(100);
raf.close();
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2