高分求解java考试面试题目,解决问题立即结贴

lci21 2007-06-30 12:25:05
文件data.dat 以一个long型的数值开始。该数值是data.dat文件中另一个int型数值相对于当前文件指针的偏移量。编写一个java程序,使用RandomAccessFile,将该int型数值读出并打印输出。
...全文
374 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lci21 2007-07-08
  • 打赏
  • 举报
回复
多谢 结了
Inhibitory 2007-06-30
  • 打赏
  • 举报
回复
或者用getFilePointer(), Returns the current offset in this file.

raf.seek(raf.getgetFilePointer() + longData);来指定文件指针位置,这个是相对于文件开始处的位置.
用这个来代替raf.skipBytes(longData).
zqrqq 2007-06-30
  • 打赏
  • 举报
回复
public static void main(String[] args) throws IOException{
RandomAccessFile file = new RandomAccessFile("file path", "rw");
long l = file.readLong();
file.seek(l);
int i = file.readInt();
System.out.println(i);
}
Inhibitory 2007-06-30
  • 打赏
  • 举报
回复
RandomAccessFile raf = new RandomAccessFile(fileName, "r");

long longData = raf.readLong();
raf.skipBytes(longData); // 相对于当前文件指针位置,偏移longData个字节.

int intData = raf.readInt();
Inhibitory 2007-06-30
  • 打赏
  • 举报
回复
FILE* fp = fopen(...);

long longData;
fread(&longData, sizeof(long), 1, fp); // 读取long型数据

int currentLocation = ftell(fp); // 取得当前的文件指针位置(可以用,也可以不用,用SEEK_CUR)
fseek(fp, (long)longData, SEEK_CUR); // 偏移文件指针与当前的距离是longData.

int intData;
fread(&intData, sizeof(int), 1, fp); // 读取int型数据.

这个是C的,但理论上是一样的,改成Java就行了.
lci21 2007-06-30
  • 打赏
  • 举报
回复
不太懂。最好给个程序。
believefym 2007-06-30
  • 打赏
  • 举报
回复
readLong,然后seek,然后readInt

62,623

社区成员

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

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