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,还要现实分页,请上代码的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 aws-java-sdk 从 S3 逐块读取文件

如何使用aws-java-sdk从S3读取块的文件块

java如何直接从流中读取excel的文件内容?Stream

java读取照片保存到达梦数据库

HDFS中的数据块大小,为啥是64MB?

使用 pandas 高效读取大型 CSV 文件而不会崩溃