使用 RandomAccessFil
oSaveFile = new RandomAccessFile(sName,"rw");//打开文件
this.nPos = npos;
oSaveFile.seek(nPos);//文件指针定位到npos
那你就可以哈哈,
给分

解决方案 »

  1.   

    具体你可以参考 RandomAccessFil
    e
      

  2.   

    具体你可以参考 RandomAccessFile的文档 
      

  3.   

    谢谢,别的流没有seek方法吗?
      

  4.   

    只有那一个了RandomAccessFile。
    当然有笨的办法,
    随便用什么流,然后读入前100K,丢弃,在读自己要的
    哈哈。
      

  5.   

    你是不是想把远程服务器上的一个文件分成几部份,然后用多个线程
    同时读,最后在客户端拼起来?应该是可以的,每一个线程读取了一个
    byte[],最后按正确的顺序把它们拼起来但要注意:
    - java.io.RandomAccessFile和java.io.File好象都是用来
      操作本地文件(包括local disk或是类似于NFS/“网络邻居”)
      的,对于由HTTP或FTP等协议导出的“文件”不一定合适- 若用(比方说)java.io.InputStream中的skip(long n),
      这时仍然要读取一部份数据,但是并不用这部份数据(读完了又不用),
      这和你自己用read(...)读取数据然后不用是一样的,数据被
      重复读取了,所以如果你要做一个象ant那样的软件的话,就不
      一定合适- 估计你要用到HTTP或FTP的某些命令,在server端对文件进行分块,
      然后在client端启动多线程下载这些文件块,再拼接这些块,
      HTTP1.1好象有类似的功能
      

  6.   

    我想把一台机器的文件通过socket传到另一台机器上。
    如果把文件分割后(比如5块),是先将他们存到5个临时文件,最好在合并好,还是一边读
    一边就合并。
    合并时,可以直接启动5个线程,然后用seek()方法将指针移动到各自的位子开始写入吗?
    为什么试了几次,都是只把最后一部分写进去了,好像前面的都被覆盖了!