首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Java读取硕大无比文本文件

2012-12-27 
Java读取超大文本文件近日由于相关业务,需要读取一个将近1G的文件,然后将符合条件的数据insert进数据库。而

Java读取超大文本文件
近日由于相关业务,需要读取一个将近1G的文件,然后将符合条件的数据insert进数据库。而执行完程序之后,最后写入数据库的数据是将近100w条,在linux系统下运行时间将近3个小时,操作量还是上了一个相当的规模。

由于之前没有进行过超大文件的读写,一开始以为需要使用分布式系统等复杂的操作才能进行。后来google了一下,发现jdk本身就支持超大文件的读写,真是虚惊一场。
网上的文章基本分为两大类,一类是使用BufferedReader类读写超大文件;另一类是使用RandomAccessFile类读取,经过比较,最后使用了前一种方式进行超大文件的读取,下面是相关代码,其实很简单

File file = new File(filepath);   BufferedInputStream fis = new BufferedInputStream(new FileInputStream(file));    BufferedReader reader = new BufferedReader(new InputStreamReader(fis,"utf-8"),5*1024*1024);// 用5M的缓冲读取文本文件  String line = "";while((line = reader.readLine()) != null){//TODO: write your business}

注意代码,在实例化BufferedReader时,增加一个分配缓存的参数即可

热点排行