zoukankan      html  css  js  c++  java
  • Java-IO之DeflaterOutputStream和InflaterOutputStream

    此类为使用 “deflate” 压缩格式压缩数据实现输出流过滤器

    example

    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.util.zip.Deflater;
    import java.util.zip.DeflaterOutputStream;
    import java.util.zip.Inflater;
    import java.util.zip.InflaterOutputStream;
    
    public class DeflaterOutputStreamIO {
        private static String inPath = "D:\a.bat";
        private static String outPath = "D:\b.bat";
    
        public static void main(String[] args) throws Exception {
            // 压缩文件
             deflater(inPath,outPath);
            // 解压文件
            Inflater(outPath, "D:\c.bat");
    
        }
    
        /**
         * 
         * @param outPath2
         *            压缩后的文件
         * @param str
         *            解压后的文件
         * @throws Exception
         */
        private static void Inflater(String outPath2, String str) throws Exception {
            FileInputStream fis = new FileInputStream(new File(outPath));
            FileOutputStream fos = new FileOutputStream(new File(str));
            InflaterOutputStream ios = new InflaterOutputStream(fos, new Inflater(true));
    
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = fis.read(b)) != -1) {
                ios.write(b, 0, len);
            }
            fis.close();
            ios.close();
        }
    
        /**
         * 
         * @param inPath
         *            原文件
         * @param outPath
         *            压缩后的文件
         * @throws Exception
         */
        public static void deflater(String inPath, String outPath) throws Exception {
            FileInputStream fis = new FileInputStream(new File(inPath));
            FileOutputStream fos = new FileOutputStream(new File(outPath));
            DeflaterOutputStream dos = new DeflaterOutputStream(fos,
                    new Deflater(9,true));
    
            byte[] b = new byte[1024];
            int len = 0;
            while ((len = fis.read(b)) != -1) {
                dos.write(b, 0, len);
            }
            fis.close();
            dos.close();
        }
    }
  • 相关阅读:
    php接收二进制文件转换成图片
    浅述WinForm多线程编程与Control.Invoke的应用
    精典策略模式
    js数组的操作详解
    PHP常用类
    收藏:五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT)
    在 Windows 上部署 Qt 应用程序
    解决 MinGW5.14 编译 QT4.4.3 报错的问题
    懒人制作 deb 包
    NET 自定义配置文件 Configuration
  • 原文地址:https://www.cnblogs.com/kabi/p/6169430.html
Copyright © 2011-2022 走看看