黑马程序员_RandomAccessFile 类

---------------------- android培训java培训、期待与您交流! ----------------------

学了很多的io包中的类之后,终于碰到了一个比较猛的类RandomAccessFile类,该类实现的文件的随机读写,有很多的方法可以使用,非常的方便,不过还是有其局限性——只能操作文件对象:RandomAccessFile(String name, String mode),string name,是文件名,而mode就有好几种形式:"r" 以只读方式打开。调用结果对象的任何 write 方法都将导致抛出IOException。 "rw" 打开以便读取和写入。如果该文件尚不存在,则尝试创建该文件。 "rws" 打开以便读取和写入,对于 "rw",还要求对文件的内容或元数据的每个更新都同步写入到底层存储设备。 "rwd" 打开以便读取和写入,对于 "rw",还要求对文件内容的每个更新都同步写入到底层存储设备。 比较常用的是“r”,“rw”。当为模式r:该类的构造函数要读取的文件必须存在,不会自动创建,否则报异常。当为模式rw:该类的构造函数要操作的文件不存在,则会自动创建,如存在,则不覆盖。示例代码如下:

import java.io.*;

public class RandomAccessFileDemo { public static void main(String []args)throws IOException

{//ReadFile();

//WriteFile();

//System.out.println(Integer.toBinaryString(258));

WriteFile_1();

}

public static void WriteFile()throws IOException{

RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");

raf.write("李四".getBytes());raf.writeInt(97);

raf.write("王五".getBytes());raf.writeInt(99);raf.close();

}

public static void ReadFile()throws IOException{

RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");//调整指针

//raf.seek(8*1);//跳过指定的字节数,但是不能往回跳

raf.skipBytes(8);byte[]buf=new byte[4];raf.read(buf);

String name=new String(buf);int age=raf.readInt();System.out.println("name="+name);

System.out.println("age="+age);raf.close();

}

public static void WriteFile_1()throws IOException{

RandomAccessFile raf=new RandomAccessFile("ran.txt","rw");

raf.seek(8*0);raf.write("周期".getBytes());raf.writeInt(103);raf.close();}

}

RandomAccessFile()类中封装了一个大型的Bytes[]数组,文件中的数据访问和存储是通过指针完成的,我们可以通过getFilePointer()方法找到指针或者使用seek()方法设置指针的值。

----------------------android培训java培训、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值