`
zhongjiaren110
  • 浏览: 2648 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

java大文本读取(几个G的文本)

阅读更多
public class BigFileRead  {
    public static void main(String[] arg) {
        try {
            int bufSize=1024;
            byte[] bs = new byte[bufSize];
            ByteBuffer byteBuf = ByteBuffer.allocate(1024);
            FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request_old.log","r").getChannel();

            while(channel.read(byteBuf)!=-1){
            int size = byteBuf.position();
                byteBuf.rewind();
                byteBuf.get(bs);
                System.out.println(new String(bs,0,size,"GBK"));
                byteBuf.clear();
            }
        } catch (IOException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
    }
}

//读取行(升级版)
    public static void main(String[] arg) {

        try {
            Date start = new Date();
            int count = 0;
            int countLoop = 0;
            String tailStr = "";
            int bufSize = 1024 * 1024 * 20;
//            int bufSize = 16;
            byte[] bs = new byte[bufSize];
            ByteBuffer byteBuf = ByteBuffer.allocate(bufSize);
//            FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request_old.log","r").getChannel();
            FileChannel channel = new RandomAccessFile("D:\\var\\log\\hyip\\hyip_app_user_request.log", "r").getChannel();
//            FileChannel channel = new RandomAccessFile("D:\\DOC_bao\\hyip_app_user_request.log.2013-06-20", "r").getChannel();
            while (channel.read(byteBuf) != -1) {
                countLoop++;
                int size = byteBuf.position();
                byteBuf.rewind();
                byteBuf.get(bs);
                String bufferStr = new String(bs, 0, size, "utf-8");

                if (bufferStr.indexOf("\n") >= 0) {
                    String[] b = bufferStr.split("\\n");
                    int len = b.length;

                    if (len > 0) {
                        b[0] = tailStr + b[0];
                        //如果最后一个是换行符,说明是整行,直接处理,否则放在临时变量里下次处理。
                        if (bufferStr.lastIndexOf("\n") == bufferStr.length() - 1) {
                            tailStr = "";
                            len++;
                        } else {
                            tailStr = b[len - 1];
                        }
                        for (int i = 0; i < len - 1; i++) {
                            count++;
//                          System.out.print(count + ":" + b[i]);
                            DBOperate(b[i]);
                        }
                    }
                } else { //如果一行数据过大,超过缓冲区,就追加到临时变量里。
                    tailStr += bufferStr;
                }
                byteBuf.clear();
            }

            if (tailStr != null && tailStr.length() > 0) {
                count++;
//                System.out.print(count + ":" + tailStr);
                DBOperate(tailStr);
            }

            Date end = new Date();
            System.out.println(start);
            System.out.println(end);
            Long spendTime =end.getTime() -start.getTime();
            System.out.println("spend time:"+spendTime+"");
            System.out.println(count);
//            System.out.println(countLoop);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
分享到:
评论

相关推荐

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

    根据给定文件的信息,我们可以总结出以下几个关键的知识点: ### 1. 使用`StringBuffer`进行文件读取 #### 知识点说明: 在Java中,`StringBuffer`类是线程安全的字符串操作类,它允许我们高效地对字符串进行修改...

    JAVA 读取文本发声音

    标题“JAVA 读取文本发声音”涉及到的是Java编程中的一项功能,即Text-to-Speech (TTS) 技术,它允许程序将文本转换为语音输出。这项技术在许多应用中都有用到,比如帮助视力障碍者阅读屏幕上的文本,或者在智能设备...

    java如何读取文件

    首先,代码导入了`java.io`包下的几个类:`BufferedReader`、`File`、`FileReader`、`FileNotFoundException`和`IOException`。这些类是读取文件所必需的。 #### 2. 创建`File`对象 代码中创建了一个`File`对象,...

    java实现文本编辑器

    我们将主要关注以下几个方面: 1. **Java基础**:Java是一种广泛使用的面向对象的编程语言,它以其“一次编写,到处运行”的特性闻名。Java应用程序通常由多个类组成,这些类定义了对象的行为和结构。 2. **Swing...

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

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

    使用Java语言版的文本分类

    它通常包括以下几个步骤: 1. **数据预处理**:这是所有NLP任务的基础,包括去除停用词、标点符号,进行词干提取,转换为小写等。Java中的开源库如Stanford CoreNLP可以协助完成这些工作。 2. **特征提取**:Tf-...

    Java文本编辑器课程设计

    Java文本编辑器的主要组成部分包括用户界面(UI)、文本处理功能和文件操作。UI部分通常使用Java Swing或JavaFX库来构建,这些库提供了丰富的组件,如JFrame、JTextArea、JButton等,用于创建窗口、文本框和按钮等...

    富文本编辑器生成的含有图片的内容转换成word文档 java 后端下载

    具体来说,它可能有以下几个方法: - `parseJsonContent(String json)`:解析JSON内容。 - `decodeBase64Images(Map, String&gt; images)`:解码base64图片。 - `downloadNetworkImages(List&lt;String&gt; urls)`:下载网络...

    Java解析FTP服务器文本文件

    在Java解析FTP服务器文本文件时,我们需要注意以下几点: * 需要引入相关的jar包。 * 需要提供正确的参数,例如服务器IP地址、用户名、密码、端口号等。 * 需要注意编码格式的转换,因为FTP服务器上默认的编码方式...

    Java简易文本编辑器(文档+源码)

    在Java中,实现这样的文本编辑器主要涉及以下几个核心技术点: 1. **Swing或JavaFX**:这是Java用于创建图形用户界面(GUI)的库。在这个项目中,可能使用了Swing,它是Java Standard Edition的一部分,用于构建...

    大文本编辑10g

    总的来说,"大文本编辑10g"可能是一个专为处理大文件设计的免费编辑工具,具备高性能、丰富的功能和易用性,帮助用户有效管理和编辑大量的文本数据。用户可以通过"Setup.exe"进行安装,享受免费且高效的文本处理体验...

    向量空间模型快速文本相似度计算 java源码+数据

    向量空间模型的构建主要包括以下几个步骤: 1. **术语提取**:首先,我们需要从文档中提取出有意义的词汇,通常会去除停用词、标点符号等无意义的字符。这个过程可能涉及到词干提取和词形还原,以减少词汇的多样性...

    广工java课程设计(文本编辑器)

    【标题】"广工java课程设计(文本编辑器)"是一个针对Java编程语言的课程实践项目,旨在让学生通过实现一个文本编辑器来深入理解和掌握Java技术。在这个项目中,学生通常会涉及到GUI(图形用户界面)的设计、事件...

    Java设计文本编辑器

    我们将从以下几个方面详细介绍这个项目: 1. **基本架构** - **MVC模式**:一个标准的文本编辑器通常基于Model-View-Controller(MVC)设计模式构建。Model负责数据的存储和管理,View负责用户界面的显示,而...

    SuperMap Objects Java 文本生成字段

    在这个特定的例子中,“SuperMap Objects Java 文本生成字段”是一个功能,它允许开发者从文本数据集中提取信息并创建包含这些信息的字段。这个过程在GIS中非常重要,因为它有助于组织和管理大量的地理数据。 首先...

    广工java课程设计(文本编辑器)

    【标题】"广工java课程设计(文本编辑器)"是一个基于Java编程语言的课程设计项目,旨在让学生通过实现一个文本编辑器来加深对Java编程的理解和应用能力。这个项目不仅涵盖了基础的Java语法和面向对象编程,还涉及到了...

    java简易文本编辑器

    这个项目包含几个关键组成部分,通过这些部分,我们可以深入理解Java编程以及如何构建一个简单的桌面应用程序。 首先,Java环境变量的设置是运行任何Java程序的基础。在`java环境变量配置.txt`文件中,可能包含了...

    Java 大文件读取排序

    在本文中,我们将探讨几个关键的技术和策略,它们对于理解和实现大文件的读取排序至关重要。 首先,了解Java中的流(Stream)机制是基础。Java I/O库提供了多种类型的流,如InputStream和OutputStream用于处理二进制...

    Java实现按行分割大文件

    Java实现按行分割大文件是指将一个大的文本文件按行分割成几个小文件的过程。这个过程可以使用Java语言来实现,本文将详细介绍Java实现按行分割大文件的方法。 知识点1: Java中读取大文件的方法 Java中有多种方法...

Global site tag (gtag.js) - Google Analytics