CSDN=>FAQ=>FAQ 展示
  • 问题内容:大文件怎么读取
  • 原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=5355433
  • 所属论坛:J2SE / 基础类     审核组:JAVA
  • 提问者:lpg4_012     解决者:flushtime
  • 感谢:flushtime
  • 关键字:Java J2SE / 基础类 文件 import mb
  • 答案:

    我要从一个文本文件中提有用的数据
    文本文件200多MB
    是不是可以建一个缓存来把有用的数据一段一段的提出来,请问该怎么做?
    ---------------------------------------------------------------

    呵呵,200MB而已...
    JAVA中可以使用内存映射文件来操作大文件.
    最大可达2GB.
    下面是个简单的示例,更具体的自己看Java API DOCS或相关资料
    import java.io.*;
    import java.nio.*;
    import java.nio.channels.*;
    public class LargeMappedFiles {
      static int length = 0x8FFFFFF; // 128 Mb
      public static void main(String[] args) throws Exception {
        MappedByteBuffer out = 
          new RandomAccessFile("test.dat", "rw").getChannel()
          .map(FileChannel.MapMode.READ_WRITE, 0, length);
        for(int i = 0; i < length; i++)
          out.put((byte)'x');
        System.out.println("Finished writing");
        for(int i = length/2; i < length/2 + 6; i++)
          System.out.print((char)out.get(i));   //read file
      }
    } ///

  • 评价: 有价值 给朵鲜花(5) 无价值 扔个鸡蛋(0)
相关FAQ
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo