java如何高效读取文件,文件一般都上64MB,还要现实分页,请上代码
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java如何高效读取文件,文件一般都上64MB,还要现实分页,请上代码相关的知识,希望对你有一定的参考价值。
参考技术A import java.io.File;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.FileChannel;
public class ReadWriteCompare
public static void main(String[] args) throws IOException
FileInputStream fileInputStream = new FileInputStream("f:"+ File.separator +"IBM e-Mentor Program Kickoff Night 1105.pdf");
FileOutputStream fileOutputStream = new FileOutputStream("f:" + File.separator + "test.pdf");
FileChannel inChannel = fileInputStream.getChannel();
FileChannel outChannel= fileOutputStream.getChannel();
ByteBuffer byteBuffer = ByteBuffer.allocate(1024);
//Direct Buffer的效率会更高。
// ByteBuffer byteBuffer = ByteBuffer.allocateDirect(1024);
long start = System.currentTimeMillis();
while(true)
int eof = inChannel.read(byteBuffer);
if(eof == -1 ) break;
byteBuffer.flip();
outChannel.write(byteBuffer);
byteBuffer.clear();
System.out.println("spending : " + (System.currentTimeMillis()-start));
inChannel.close();
outChannel.close();
追问
你这是读pdf,没分页的啊!
追答只是一个例子而已。
追问我的IO流很烂,API基本不会用,我是新手啊,保护下呗,写点代码!
追答百度不行去谷歌、、、
如何提高java读取大文本文件的效率
参考技术A JavaNIO的创建目的是为了让Java程序员可以实现高速I/O而无需编写自定义的本机代码。JavaNIO的高效得益于其两大"助手":Channel和Buffer。NIO将最耗时的I/O操作(即填充和提取缓冲区)转移回操作系统,因而可以极大地提高速度。 参考技术B 1. 放数据库2. 给文件做索引
以上是关于java如何高效读取文件,文件一般都上64MB,还要现实分页,请上代码的主要内容,如果未能解决你的问题,请参考以下文章