标题:seek()的用法问题!
只看楼主
d460548216
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-9-7
 问题点数:0 回复次数:2 
seek()的用法问题!
class RandomFile {
    public RandomFile() {
    }
void n(){
    int [] A = {1,2,3,4,5,6,7,8,9,0};
    try{
        RandomAccessFile obj= new RandomAccessFile("rand.dat","rw");
        for (int i=0;i<A.length;i++){
            obj.writeInt(A[i]);
        }
        System.out.println("逆向内容");
        for(int i=A.length-1;i>=0;i--){
            obj.seek(i*4);
            System.out.println(obj.readInt());
        }
        obj.close();
    }catch (Exception n){
        System.out.println("发生异常"+n);
    }finally {
        System.out.println("始终在最后执行...");
        System.out.println("在 finally 语句块内");
    }
}
    public static void main(String[] args) {
        RandomFile randomfile = new RandomFile();
        randomfile.n();
    }
}
请问seek()里为什么要乘以4才可以?
seek()的用法?

[[it] 本帖最后由 d460548216 于 2008-10-7 14:04 编辑 [/it]]
搜索更多相关主题的帖子: seek 用法 
2008-10-07 14:02
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
得分:0 
void seek(long pos)
          设置到此文件开头测量到的文件指针偏移量,在该位置发生下一个读取或写入操作。

*4 应该就是因为整型是32位的,所以偏移量需要一次移动4个字节。

倚天照海花无数,流水高山心自知。
2008-10-07 19:12
d460548216
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2008-9-7
得分:0 
回复 2# nuciewth 的帖子
明白了,谢谢!
2008-10-08 15:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-236778-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.386282 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved