这篇文章将为大家详细讲解有关JAVA中怎么读取大TXT文件,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
当文件过于大的时候我们如果还用传统的方式读取很容易造成内存满我们应该拆开读取:
用NIO方式把大文件分成固定大小的小文件(小于2G,自己综合分析设置多大,每个文件太大容易浪费空间,太小浪费时间),然后再循环用方案1去读每个小文件。
public static void readLargeTextWithNIO() {
try {
long startTime = System.currentTimeMillis();
// 要读取的文件
FileInputStream fin = new FileInputStream("/Applications/demo/aaaa.txt");
FileChannel fcin = fin.getChannel();
// 文件过大拆分成 128M 大小的txt文件
ByteBuffer buffer = ByteBuffer.allocate(128 * 1024 * 1024);
while (true) {
buffer.clear();
int flag = fcin.read(buffer);
if (flag == -1) {
break;
}
buffer.flip();
// 输出到指定的位置
FileOutputStream fileInputStream = new FileOutputStream("/Applications/demo/"+ UUID.randomUUID().toString()+".txt");
FileChannel channel = fileInputStream.getChannel();
channel.write(buffer);
}
long endTime = System.currentTimeMillis();
System.out.println(" 共消耗:" + (endTime-startTime) / 1000 +"秒");
// 分割成了 每一个文件 大小是 128M, 然后在用传统的方法去读取即可
} catch (Exception e) {
}
}
关于JAVA中怎么读取大TXT文件就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。