黑马训练营-------RandomAccessFile

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------

/*
 * 该类不是IO中的子类,但具备读写功能,是属于io包的的成员,他继承至Object.比较特殊。
 * 内部封装了一个数组,而且通过指针对数组的元素进行操作。 //随机的原因就是利用指针,但是数据最好有规律(字节数有规律)
 *
 可以通过getFilePointer获取指针位置,
 同时可以通过seek改变指针的位置。 

 * 能够实现读写的原因:封装了字节输入和输出流。
 * 通过构造函数可以看出其的局限性:只能够读写文件。
 * 而且操作文件还有模式:只读r,,读写rw等。

 如果模式为只读 r。不会创建文件。会去读取一个已存在文件,如果该文件不存在,则会出现异常。
 如果模式rw。操作的文件不存在,会自动创建。如果存则不会覆盖。
 
 * write()的原理:只写出最低八位。
 * writeInt():写4个八位。
 *
 特点:可以对指定位置进行查询修改,可以对文件进行分段操作。(一段数据分为几段,再有多个线程来控制,例如软件的下载,而一般
 流是从头到尾他们的数据不连续,)
 * */
 class RandomAccess{

 public static void main(String[] args)throws IOException{
  read();
 }
 public static void read()throws IOException{
  RandomAccessFile raf=new RandomAccessFile("haha.txt","rw");//创建一个模式没rw随机流对象,
  raf.write("张超".getBytes());//在默认的指针处写入张超。
 // raf.write(22);
  raf.write(257);//由于写的时候只写了最低8位,会丢失数据。
  raf.seek(0);//把指针移到0的位置。
  byte[] by=new byte[8];
  raf.read(by);
  sop(new String(by,0,7));
  raf.close();//
  
 }
 public static void sop(Object obj){
  System.out.println(obj);
 }
}

---------------------- ASP.Net+Android+IO开发S.Net培训、期待与您交流! ----------------------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值