`
zhongjiaren110
  • 浏览: 2545 次
  • 性别: 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实现PDF读写(Itext)与解析XML读写(Dom4j)

    一、用JAVA完成了PDF读写(IText的应用) 加密PDF文件,引用到的JAR包是 bcprov-jdk15on-147 生成PDF文件,引用到的JAR包是itext5.5.1 项目文件为PDFText.java 主要实现功能: 1、创建一个PDF文件:HelloWorld.pdf,...

    java将大文件分成若干个小文件

    把一个大的文本文件按文件大小分成若干个小文件

    JAVA上百实例源码以及开源项目

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    JAVA-POI读取word每一段所在页码(附依赖jar包).zip

    POI无法读取到word每一段所在的页码。我给出了代码和所有的解释,用POI读取word中的页码。也算是小方法了,基本很准确,为什么要加一个基本呢?因为,分页标志符号在第一行为空白行的时候没有分页符!!所以你的文档...

    JAVA上百实例源码以及开源项目源代码

    Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码实例 1个目标文件 摘要:Java源码,算法相关,非对称加密  Java非对称加密源程序代码实例,本例中使用RSA加密技术,...

    一个Java Applet的动态显示图片的小程序

    简单的一个Java Applet的动态显示图片的小程序。将资源内的图片放置到E盘根目录下。如果想换图片,记得修改width和heigh的初始值,值为图片的宽和高。如果你对动画有兴趣,可以试着稍微修改一下本程序(程序里有相关...

    java笔试题重复字符串-MarkovTextGen:使用马尔可夫链生成简单的英文文本。用Java实现。面向APCS高中学生

    java笔试题重复字符串句子生成器 使用马尔可夫链生成简单的英文文本。...对于本实验的几个部分,您的程序将读取一个文本文件。 读取文件的最简单方法是使用 Scanner 和名为 FileReader 的类,如下例

    JAVA中读取文件(二进制,字符)内容的几种方法总结

    本篇文章主要介绍了JAVA中读取文件(二进制,字符)内容的方法总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java jdk实列宝典 光盘源代码

    更改组建外观,对日历设置几个显示外观(lookandfeel.java);自定义对话框DialogWindows;制作欢迎界面SplashWindow.java; 10 java图形 一个圆形按钮,当单击按钮时颜色发生变化CircleButton.java; 捕捉屏幕相当于...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java2实用教程.rar

    4 1编程语言的几个发展阶段 4 1 1机器语言 4 1 2过程语言 4 1 3面向对象编程 4 2类 4 2 1类声明 4 2 2类体 4 2 3成员变量和局部变量 4 2 4方法 4 2 5方法重载 4 2 6构造方法 4 2 7类方法和实例方法 4 2 8值得注意的...

Global site tag (gtag.js) - Google Analytics