`
sharong
  • 浏览: 494462 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8747
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:13098
社区版块
存档分类
最新评论

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时,增加一个分配缓存的参数即可
分享到:
评论
8 楼 甜甜奥利奥 2012-11-07  
多谢分享~正好需要呢  
7 楼 sharong 2011-02-20  
smallboby 写道
不允许使用工具? 比如sqlload。读入1G文本几分钟。

噢,这个工具可以学习一下哈,不过这个文本不是sql语句。就是一行一行的文本,读取后需要用程序分析一下,然后把分析出来的元数据insert到数据库
6 楼 sharong 2011-02-20  
sdh5724 写道
这。。。无论多大的文件读取, 跟语言没有什么关系吧。 这是OS的支持特性。 底层操作上, 只需要操作文件的移动指针就可以了。 要多看看OS IO函数。

java对文本的操作分为字节流和字符流两种,jvm采用的是不同的缓存策略。
5 楼 lemon_1227 2011-02-20  
有个问题:如果导入5m数据的时候,正好把某个数据给分割了,这不造成数据读取错误了嘛
4 楼 smallboby 2011-02-20  
不允许使用工具? 比如sqlload。读入1G文本几分钟。
3 楼 herecomes 2011-02-20  
有关系吧,还是需要看实现方式的。
2 楼 Loudyn 2011-02-20  
sdh5724 写道
这。。。无论多大的文件读取, 跟语言没有什么关系吧。 这是OS的支持特性。 底层操作上, 只需要操作文件的移动指针就可以了。 要多看看OS IO函数。

1 楼 sdh5724 2011-02-20  
这。。。无论多大的文件读取, 跟语言没有什么关系吧。 这是OS的支持特性。 底层操作上, 只需要操作文件的移动指针就可以了。 要多看看OS IO函数。

相关推荐

    java读取超大文本文件

    ### Java读取超大文本文件的关键技术点 在处理大数据量的文本文件时,Java 提供了多种方式来实现高效、低内存占用的文件读取操作。本文将围绕标题“java读取超大文本文件”及其相关描述和部分代码片段进行深入解析...

    Java 读写文件文本文件的示例

    Java中读写文本文件主要依赖于`InputStream`和`OutputStream`的使用,结合`Reader`和`Writer`接口的实现类如`BufferedReader`和`PrintWriter`,可以高效地完成文件的读取和写入操作。掌握这些核心类的使用是进行文件...

    Java读取TXT文本文件乱码解决方案.doc

    "Java读取TXT文本文件乱码解决方案" Java 读取 TXT 文本文件乱码解决方案中,主要讨论的是在 Java 中读取 TXT 文本文件时出现乱码的问题,并提供了解决方案。 首先,文章中提供了一个简单的读取 TXT 文件的代码,...

    Java解析FTP服务器文本文件

    Java解析FTP服务器文本文件 Java解析FTP服务器文本文件是指使用Java语言连接FTP服务器,上传、下载、递归目录遍历等基本操作的集合。在这个过程中,我们需要引入相关的jar包,例如cpdetector.jar、jchardet-1.0.jar...

    java 将文件中二进制文件转换成文本文本文件并输出

    这个程序会读取名为"binary_file.bin"的二进制文件,将其中的每个字节转换为ASCII字符,并将结果写入"test_file.txt"文本文件。请注意,如果二进制文件包含非ASCII字符,转换可能会导致乱码或不可读的文本。 在实际...

    JAVA简单的读写文本文件的代码

    通过上述四个主要部分的分析,我们可以看到Java语言在处理文件读写方面提供了丰富的API支持。使用合适的类库可以极大地简化开发工作并提高程序的性能。例如,使用`StringBuffer`可以有效地处理字符串的动态增长;而`...

    java读取文本文件

    下面将详细讲解如何使用Java读取文本文件,包括多种常用的方法和注意事项。 1. 使用`BufferedReader` `BufferedReader`类是Java中用于读取字符流的常用工具,它通过内部缓冲区提高读取效率。以下是一个简单的使用...

    java如何读取文件

    本文将详细解析如何使用Java读取文本文件,基于提供的代码示例,深入探讨其工作原理及最佳实践。 ### Java读取文本文件的基础 在Java中,读取文件主要依赖于`java.io`包中的类,如`FileReader`和`BufferedReader`...

    简单的用java实现读写文本文件的示例.doc

    2. 将内容中的文本写到文件 3. 将一个文件的内容读出来写入另一个文件中 同时也展示了如果从输入流中读出来内容写入输出流中(仅限文本流) 三个例子可以独立存在,所以根据需要只看其中一个就行了

    Java多线程读取大文本文件并批量插入MongoDB的实战代码

    Java多线程读取大文本文件并批量插入MongoDB的代码,文本文件,csv文件,可以结合POI改造使其支持excel。 适合做大量文本数据或日志文件入库的场景,大文本被拆分成多个线程处理,速度快。 批量插入MongoDB,存在则...

    java文本读取方法

    本文介绍了Java中常用的四种文本文件读取方法:按字节读取、按字符读取、按行读取以及随机读取。每种方法都有其适用场景和特点,开发者可以根据实际需求选择合适的方式来处理文本文件。此外,还特别注意了异常处理和...

    Java大文本txt文件读取的三种方法

    很好的解决大文件读取中需要耗费大量时间的问题,三种方法各异,对不同的文本文件都能较好解决。

    java读取txt文件内容(java快速读取,程序已调试通)

    java读取txt文件,可以以文件路径构造这个流,:FileInputStream fin = new FileInputStream("d:/test.txt"); 然后使用这个流直接读取到文件,再使用reader构造BufferedReader,按行读取一整行的文本,作为字符串返回...

    java读取文件方法大全

    ### Java读取文件方法大全:读取File流等技术 在Java中,读取文件是一项基本且重要的操作,它可以通过多种方式实现,如字节流、字符流和基于行的读取。下面将详细介绍这些方法: #### 字节级读取:`...

    java读写csv文件,中文乱码问题

    2. **Java读取CSV文件**: - 使用`BufferedReader`和`InputStreamReader`组合,可以指定字符编码读取文件。例如: ```java FileInputStream fis = new FileInputStream("path_to_file.csv"); InputStreamReader ...

    java 按顺序读取文件

    至于`Java.jpg`文件,它通常表示一个图片文件,而不是文本文件。如果需要读取图片数据,可以使用`ImageIO`类或其他图像处理库,但这超出了“按顺序读取文件”的范畴,因为图片数据通常是二进制格式,而非文本。 ...

    Java读写文本文件的示例代码.rar

    在Java编程语言中,读写文本文件是常见的操作,这对于数据存储、日志记录或配置文件处理至关重要。这个压缩包“Java读写文本文件的示例代码.rar”包含了一些示例代码,帮助开发者理解如何在Java中实现这些功能。下面...

    Java读写.txt文件

    在Java编程中,读写文本文件(如`.txt`文件)是常见的操作,尤其是在处理配置文件时。配置文件通常以键值对(key-value pairs)的形式存储数据,便于程序访问和管理设置。以下是对这个主题的详细阐述: 1. **Java I...

    java 读取文件 文件读取操作

    在Java编程语言中,文件读取是常见的任务,...处理文本文件时,按字符或按行读取更合适。如果需要高效地访问文件的特定部分,随机读取则必不可少。理解这些基本概念可以帮助你编写出更加高效和灵活的Java文件操作程序。

Global site tag (gtag.js) - Google Analytics