黑马程序员技术交流社区

标题: RandomAccessFile的疑问 [打印本页]

作者: 王春晓    时间: 2013-5-17 11:28
标题: RandomAccessFile的疑问
本帖最后由 王春晓 于 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时,说到可以划分区段来读取写入信息,从而达到随机读写的目的,研究了一下写了下面的代码,注释掉的两句功能是定位存入的年龄的指针位置,注释后报错,想不通为什么,不用这两句年龄存入时不也是在这里开始吗?


作者: Jacky_Chen1990    时间: 2013-5-17 13:55
我的存在是为了消灭0回复么! 帮顶了!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2