当前位置: 网学 > 编程文档 > JAVA > 正文

java一次性查询几十万,几百万数据解决办法

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/08/05
p; 存入临时文件之后,再用读取大量数据文件方法。设置缓存大小BUFFER_SIZE ,Config.tempdatafile是文件地址来源博客http://yijianfengvip.blog.163.com/blog/static/175273432201191354043148/ package com.yjf.util;import java.io.File;import java.io.RandomAccessFile;import java.nio.MappedByteBuffer;import java.nio.channels.FileChannel; public class Test {    public static void main(String[] args) throws Exception {        final int BUFFER_SIZE = 0x300000; // 缓冲区为3M        File f = new File(Config.tempdatafile); //  来源博客http://yijianfengvip.blog.163.com/blog/static/175273432201191354043148/        int len = 0;        Long start = System.currentTimeMillis();        for (int z = 8; z >0; z--) {            MappedByteBuffer inputBuffer = new RandomAccessFile(f, "r")                    .getChannel().map(FileChannel.MapMode.READ_ONLY,                            f.length() * (z-1) / 8, f.length() * 1 / 8);            byte[] dst = new byte[BUFFER_SIZE];// 每次读出3M的内容            for (int offset = 0; offset < inputBuffer.capacity(); offset += BUFFER_SIZE) {                if (inputBuffer.capacity() - offset >= BUFFER_SIZE) {                    for (int i = 0; i < BUFFER_SIZE; i++)                        dst[i] = inputBuffer.get(offset + i);                } else {                    for (int i = 0; i < inputBuffer.capacity() - offset; i++)                        dst[i] = inputBuffer.get(offset + i);                }                int length = (inputBuffer.capacity() % BUFFER_SIZE == 0) ? BUFFER_SIZE                        : inputBuffer.capacity() % BUFFER_SIZE;                len += new String(dst, 0, length).length();                System.out.println(new String(dst, 0, length).length()+"-"+(z-1)+"-"+(8-z+1));            }        }        System.out.println(len);        long end = System.currentTimeMillis();        System.out.println("读取文件文件花费:" + (end - start) + "毫秒");    }}读取大量数据文件方法。

  • 上一篇资讯: JSON for java入门总结
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号