呵呵,这个简单,使用 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
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
解决方案 »
- java有没有对线程堆栈的保存机制
- 请教java把查询数据库的结果集用表格表示的方法
- 为何写入对象不能正确显示,运行时出 现Exception in thread "main" java.io.EOFException。程序如下
- java中往Access数据库里插入记录的问题
- 急!!!!!!!!!!ServerSocket问题
- 一个挺棘手的问题:页面中有javascript代码时怎么通过Action后执行JS脚本呢??????????????
- 我是新手,请问各位都用什么样的编程环境。
- 超菜问题 不问不行呀
- 急求Struts例子源代码!!!
- 在线等解,达人救命!!
- java.sql.* 与javax.sql.* 有何不同?
- 如何实现‘撤消’,‘重做’功能!解决就给分!
可以用 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));
}
}
*****************************
非常好用,试试吧