A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王春晓 中级黑马   /  2013-5-17 11:28  /  1033 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 王春晓 于 2013-5-19 18:37 编辑
  1. public class RandomAccessFileDemo {
  2.         public static void main(String[] args) throws IOException
  3.         {
  4.                 //writeFile();
  5.                 readFile();
  6.         }
  7.         
  8.         public static void readFile()throws IOException
  9.         {
  10.                 RandomAccessFile raf = new RandomAccessFile("ran.txt","r");
  11.                
  12.                 //调整对象中的指针
  13.                 raf.seek(20*3);
  14.                 byte[] buf = new byte[16];//定义一个16字节的数组,用来存储读取到的姓名信息
  15.                 raf.read(buf);
  16.                 String name = new String(buf);
  17.                 //raf.seek(20*3+16);//将指针定位到此位置读取年龄信息
  18.                 int age = raf.readInt();
  19.                
  20.                 System.out.println("name="+name);
  21.                 System.out.println("age="+age);
  22.                         
  23.                 raf.close();
  24.         }
  25.         
  26.         public static void writeFile()throws IOException
  27.         {
  28.                 RandomAccessFile raf = new RandomAccessFile("ran.txt","rw");
  29.                
  30.                 raf.seek(20*3);//每二十个字节作为一个存储空间单位,16字节存姓名,4个字节存年龄
  31.                 byte[] buf = new byte[16];//定义一个16字节的数组,用来存储姓名信息
  32.                 buf = "爱新觉罗溥仪".getBytes();//将某人姓名存入数组中
  33.                 raf.write(buf,0,buf.length);//把数组写入流中
  34.                 //raf.seek(20*3+16);//定位年龄的指针
  35.                 raf.writeInt(12);
  36.                 raf.close();
  37.         }
  38. }
复制代码
在讲RandomAccessFile时,说到可以划分区段来读取写入信息,从而达到随机读写的目的,研究了一下写了下面的代码,注释掉的两句功能是定位存入的年龄的指针位置,注释后报错,想不通为什么,不用这两句年龄存入时不也是在这里开始吗?

评分

参与人数 1技术分 +1 收起 理由
Sword + 1

查看全部评分

1 个回复

倒序浏览
我的存在是为了消灭0回复么! 帮顶了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马