用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

java读取超大字符文本方法 利用缓冲区分段读取 防止内存溢出异常

2014-04-30 作者: 小蜜锋举报

[java]代码库

//按自定义缓冲区大小读取
public static void main(String[] args) throws Exception {
    int bufSize = 1024;
    byte[] bs = new byte[bufSize];
    ByteBuffer byteBuf = ByteBuffer.allocate(1024);
    FileChannel channel = new RandomAccessFile(fff, "r").getChannel();
    while (channel.read(byteBuf) != -1) {
        int size = byteBuf.position();
        byteBuf.rewind();
        byteBuf.get(bs); // 把文件当字符串处理,直接打印做为一个例子。
        System.out.print(new String(bs, 0, size));
        byteBuf.clear();
    }
}

//按行读取
public static void main2(String[] args) throws Exception {
  BufferedReader br = new BufferedReader(new FileReader(fff));
  String line = null;
  while ((line = br.readLine()) != null) {
   System.out.println(line);
  }
}

//读取指定行数
public static void main3(String[] args) throws IOException {
    String path = "你要读的文件的路径";
    RandomAccessFile br = new RandomAccessFile(path, "rw"); //这里rw看你了。要是之都就只写r
    String str = null, app = null;
    int i = 0;
    while ((str = br.readLine()) != null) {
        i++;
        app = app + str;
        if(i >= 100) { //假设读取100行
            i = 0;
            //				这里你先对这100行操作,然后继续读
            app = null;
        }
    }
    br.close();
}


网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...