gpt4 book ai didi

JAVA中的deflate压缩实现方法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 24 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章JAVA中的deflate压缩实现方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

在文件的传输过程中,为了使大文件能够更加方便快速的传输,一般采用压缩的办法来对文件压缩后再传输,JAVA中的java.util.zip包中的Deflater和Inflater类为使用者提供了DEFLATE算法的压缩功能,以下是自已编写的压缩和解压缩实现,并以压缩文件内容为例说明,其中涉及的具体方法可查看JDK的API了解说明.

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
/**
    *
    * @param inputByte
    *      待解压缩的字节数组
    * @return 解压缩后的字节数组
    * @throws IOException
    */
   public static byte [] uncompress( byte [] inputByte) throws IOException {
     int len = 0 ;
     Inflater infl = new Inflater();
     infl.setInput(inputByte);
     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     byte [] outByte = new byte [ 1024 ];
     try {
       while (!infl.finished()) {
         // 解压缩并将解压缩后的内容输出到字节输出流bos中
         len = infl.inflate(outByte);
         if (len == 0 ) {
           break ;
         }
         bos.write(outByte, 0 , len);
       }
       infl.end();
     } catch (Exception e) {
       //
     } finally {
       bos.close();
     }
     return bos.toByteArray();
   }
 
   /**
    * 压缩.
    *
    * @param inputByte
    *      待压缩的字节数组
    * @return 压缩后的数据
    * @throws IOException
    */
   public static byte [] compress( byte [] inputByte) throws IOException {
     int len = 0 ;
     Deflater defl = new Deflater();
     defl.setInput(inputByte);
     defl.finish();
     ByteArrayOutputStream bos = new ByteArrayOutputStream();
     byte [] outputByte = new byte [ 1024 ];
     try {
       while (!defl.finished()) {
         // 压缩并将压缩后的内容输出到字节输出流bos中
         len = defl.deflate(outputByte);
         bos.write(outputByte, 0 , len);
       }
       defl.end();
     } finally {
       bos.close();
     }
     return bos.toByteArray();
   }
 
   public static void main(String[] args) {
     try {
       FileInputStream fis = new FileInputStream( "D:\\testdeflate.txt" );
       int len = fis.available();
       byte [] b = new byte [len];
       fis.read(b);
       byte [] bd = compress(b);
       // 为了压缩后的内容能够在网络上传输,一般采用Base64编码
       String encodestr = Base64.encodeBase64String(bd);
       byte [] bi = uncompress(Base64.decodeBase64(encodestr));
       FileOutputStream fos = new FileOutputStream( "D:\\testinflate.txt" );
       fos.write(bi);
       fos.flush();
       fos.close();
       fis.close();
     } catch (Exception e) {
       //
     }
   }

以上这篇JAVA中的deflate压缩实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我.

最后此篇关于JAVA中的deflate压缩实现方法的文章就讲到这里了,如果你想了解更多关于JAVA中的deflate压缩实现方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com