java中GZIP压缩解压类使用实例

2025-05-29 0 83

java中GZIP压缩解压类使用实例

当我们客户端与服务端进行数据传输时需要走流量,为了节省流量我们常常需要写一个压缩类对数据进行压缩

实例代码:

?

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

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109
import java.io.ByteArrayInputStream;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.util.zip.GZIPInputStream;

import java.util.zip.GZIPOutputStream;

/**

* GZIP压缩解压类

*/

public class MessageGZIP {

private static String encode = "utf-8";//"ISO-8859-1"

public String getEncode() {

return encode;

}

/*

* 设置 编码,默认编码:UTF-8

*/

public void setEncode(String encode) {

MessageGZIP.encode = encode;

}

/*

* 字符串压缩为字节数组

*/

public static byte[] compressToByte(String str){

if (str == null || str.length() == 0) {

return null;

}

ByteArrayOutputStream out = new ByteArrayOutputStream();

GZIPOutputStream gzip;

try {

gzip = new GZIPOutputStream(out);

gzip.write(str.getBytes(encode));

gzip.close();

} catch (IOException e) {

e.printStackTrace();

}

return out.toByteArray();

}

/*

* 字符串压缩为字节数组

*/

public static byte[] compressToByte(String str,String encoding){

if (str == null || str.length() == 0) {

return null;

}

ByteArrayOutputStream out = new ByteArrayOutputStream();

GZIPOutputStream gzip;

try {

gzip = new GZIPOutputStream(out);

gzip.write(str.getBytes(encoding));

gzip.close();

} catch (IOException e) {

e.printStackTrace();

}

return out.toByteArray();

}

/*

* 字节数组解压缩后返回字符串

*/

public static String uncompressToString(byte[] b) {

if (b == null || b.length == 0) {

return null;

}

ByteArrayOutputStream out = new ByteArrayOutputStream();

ByteArrayInputStream in = new ByteArrayInputStream(b);

try {

GZIPInputStream gunzip = new GZIPInputStream(in);

byte[] buffer = new byte[256];

int n;

while ((n = gunzip.read(buffer)) >= 0) {

out.write(buffer, 0, n);

}

} catch (IOException e) {

e.printStackTrace();

}

return out.toString();

}

/*

* 字节数组解压缩后返回字符串

*/

public static String uncompressToString(byte[] b, String encoding) {

if (b == null || b.length == 0) {

return null;

}

ByteArrayOutputStream out = new ByteArrayOutputStream();

ByteArrayInputStream in = new ByteArrayInputStream(b);

try {

GZIPInputStream gunzip = new GZIPInputStream(in);

byte[] buffer = new byte[256];

int n;

while ((n = gunzip.read(buffer)) >= 0) {

out.write(buffer, 0, n);

}

return out.toString(encoding);

} catch (IOException e) {

e.printStackTrace();

}

return null;

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/itachi85/article/details/6597965

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java中GZIP压缩解压类使用实例 https://www.kuaiidc.com/117773.html

相关文章

发表评论
暂无评论