呵呵,这个简单,使用 NIO 可以很好的解决你所说的问题!具体的见:
http://book.yzcc.com/soft/2813.htm
http://www.cjsdn.com/post/view?bid=1&id=66465&sty=0&tpg=61&ppg=1&age=0

解决方案 »

  1.   

    若要随机访问则不能用stream,可以用RandemAccessFile,但存取打量数据还是用NIO好
      

  2.   

    nio 中的内存映射文件(Memory-Mapped file)机制:
    可以用 MappedByteBuffer 这个类来解决。
    给你个例程:
    *********************************
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;public class LargeMappedFiles {
      static int length = 0x8FFFFFF; // 128 Mb
      public static void main(String[] args) throws Exception {//用RandomAccessFile来map以实现机读写用RandomAccessFile来map以实现机读写
     MappedByteBuffer out = 
          new RandomAccessFile("test.dat", "rw").getChannel().map(FileChannel.MapMode.READ_WRITE, 0, length);
        for(int i = 0; i < length; i++)
          out.put((byte)'x');
        System.out.println("Finished writing");
        for(int i = length/2; i < length/2 + 6; i++)
          System.out.print((char)out.get(i));
      }

    *****************************
    非常好用,试试吧