一个RandomAccess中的point问题

iamcyh 2002-07-01 08:38:10
import java.io.*;
public class RandomAccess {
public static void main(String[] args) throws IOException {
RandomAccessFile books = new RandomAccessFile("books.dat", "rw");
String [] bookList = {"Starship Troopers", "The Hobbit", "The Man in the High Castle"};
int [] yearList = {1959, 1954, 1974};
long[] booknamepoint=new long[3];
long[] bookyearpoint=new long[3];
for(int i=0; i<3; i++) {
books.writeUTF(bookList[i]);
booknamepoint[i]=books.getFilePointer();
System.out.println("书名位置:"+booknamepoint[i]);
books.writeInt(yearList[i]);
bookyearpoint[i]=books.getFilePointer();
System.out.println("年份位置:"+bookyearpoint[i]);
}
books.seek(0);
for(int i=0;i<bookList.length-1;i++){
if(i==0){
books.seek(0);
}else{books.seek(bookyearpoint[i-1]);}
books.readUTF();
books.readInt();
System.out.println(books.readUTF() + " " + books.readInt());
}
books.close();
}
}

结果是
The Hobbit 1954
The Man in the High Castle 1974

为什么不是
Starship Troopers 1959
The Hobbit 1954
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
iamcyh 2002-07-01
  • 打赏
  • 举报
回复
我一明白了,但还是谢谢你的参与。
================================================================

CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!

★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。

★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。

Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]

wangfc 2002-07-01
  • 打赏
  • 举报
回复
你的程序很难读啊.连输出结果都只给一点点.我是不想看了.
mandye 2002-07-01
  • 打赏
  • 举报
回复
你一个循环体实际移动了指针两次

第一个

books.readUTF();
books.readInt();

已经把指针移动了

下面的println又移动了一次

逻辑错误

给分

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧