要求是这样的:用户通过网络请求某个文件中的某些字节,每个文件为二进制文件有的大到几G,请问如何比较有性能地实现这个要求。
我现在的做法是对每一次请求就打开一次文件,用skip跳到要读取的字节处读取后关闭,我觉得这样频繁打开关闭IO是不理智的,后面我把对同一个文件用同一个文件实例,但是每个人的请求处都不一样,如何让每次从读取后文件指针指到文件头以便后面的skip??

解决方案 »

  1.   

    此回复为自动发出,仅用于显示而已,并无任何其他特殊作用
    楼主【myplxdm】截止到2008-07-04 09:55:00的历史汇总数据(不包括此帖):
    发帖的总数量:38                       发帖的总分数:640                      
    结贴的总数量:38                       结贴的总分数:640                      
    无满意结贴数:15                       无满意结贴分:620                      
    未结的帖子数:0                        未结的总分数:0                        
    结贴的百分比:100.00%               结分的百分比:100.00%                  
    无满意结贴率:39.47 %               无满意结分率:96.88 %                  
    敬礼!
      

  2.   

    用RandomAccessFile,里面有个seek方法可以到处跳,给个例子RandomAccessFile ra = new RandomAccessFile(file, "r");
    byte[] data = new byte[100];
    ra.seek(ra.length() - data.length);
    ra.read(data);
      

  3.   

    谢谢,我想问的是RandomAccessFile效率如何?
      

  4.   

    RandomAccessFile ra = new RandomAccessFile(file, "r");
    byte[] data = new byte[100];
    ra.seek(ra.length() - data.length);
    ra.read(data);