大文件怎么读取 我要从一个文本文件中提有用的数据文本文件200多MB是不是可以建一个缓存来把有用的数据一段一段的提出来,请问该怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,200MB而已...JAVA中可以使用内存映射文件来操作大文件.最大可达2GB.下面是个简单的示例,更具体的自己看Java API DOCS或相关资料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 { 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)); //read file }} /// 可以用RandomAccessFile配合多綫程,速度快但是系統开销相对大.我blog里有一个类似的程序,你可以参考一下 建议楼主看看<Thinging in JAVA>的 IO那章.利用内存映射文件操作大文件的效率是用普通方法操作大文件的10倍以上.<Core Java>里面也有过对比 多谢大家指点,会努力学习JAVA的!多谢flushtime() 跟据你的代码我再去认真学习一下,我是个初学者.多谢,多谢! Calendar 真诚请教(关于java数据) 关于查询优化 如何给系统的类增加成员方法,比如给String增加一个toLocalString()的方法 ??? 这种情况怎么处理啊 残疾程序员的情感历程(原创)心情好,散分。。。 如和读取TextField内容? JB X 下引用别人开发好的类,简单引用 编译通不过~ 对象建立和调用的问题? 在JAVA中,如何实现先算括号里的,再算括号外的 怎么样批量设置一个类中属性的注释 绝对诡异的ClassNotFoundException错误
JAVA中可以使用内存映射文件来操作大文件.
最大可达2GB.
下面是个简单的示例,更具体的自己看Java API DOCS或相关资料
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 {
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)); //read file
}
} ///
我blog里有一个类似的程序,你可以参考一下
利用内存映射文件操作大文件的效率是用普通方法操作大文件的10倍以上.<Core Java>里面也有过对比