码迷,mamicode.com
首页 > 其他好文 > 详细

通过流进行解压缩文件

时间:2014-09-02 12:03:04      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   使用   ar   文件   数据   

这里为了使代码更加简洁,直接用了transfer来挂接两路流的传输操作。

// 初始化文件输入流
    tb_stream_ref_t istream = tb_stream_init_from_url("/home/file.txt");

    // 初始化文件输出流
    tb_stream_ref_t ostream = tb_stream_init_from_file("/home/file.gz", TB_FILE_MODE_RW | TB_FILE_MODE_CREAT | TB_FILE_MODE_BINARY | TB_FILE_MODE_TRUNC);

    // 初始化解压缩流,以istream作为输入
    tb_stream_ref_t fstream = tb_stream_init_filter_from_zip(istream, TB_ZIP_ALGO_GZIP, TB_ZIP_ACTION_INFLATE);

    // 初始化压缩流,以istream作为输入
    //tb_stream_ref_t fstream = tb_stream_init_filter_from_zip(istream, TB_ZIP_ALGO_GZIP, TB_ZIP_ACTION_DEFLATE);    

    // 进行流传输,并且通过 fstream进行中间外挂解压、压缩
    if (istream && ostream && fstream) 
    {
        /* 保存流数据,如果每个流都还没有调用tb_stream_open打开过
         * 这里会自动帮你打开,这样上层接口使用上,看上去更加简洁明了
         * 
         * 后面三个参数主要用于:限速、进度信息回调,这些之后再详细说明
         * 现在只需要传空就行了
         *
         * save 是 实际传输的数据大小,失败返回:-1
         */
        tb_hong_t save = tb_transfer_done(fstream, ostream, 0, tb_null, tb_null);
    }

    // 释放流数据
    if (fstream) tb_stream_exit(fstream);
    if (istream) tb_stream_exit(istream);
    if (ostream) tb_stream_exit(ostream);

 

通过流进行解压缩文件

标签:style   blog   color   os   io   使用   ar   文件   数据   

原文地址:http://www.cnblogs.com/tboox/p/3950866.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!