这里有新鲜出炉的Java设计模式,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
下面小编就为大家带来一篇JAVA中的deflate压缩实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
在文件的传输过程中,为了使大文件能够更加方便快速的传输,一般采用压缩的办法来对文件压缩后再传输,JAVA中的java.util.zip包中的Deflater和Inflater类为使用者提供了DEFLATE算法的压缩功能,以下是自已编写的压缩和解压缩实现,并以压缩文件内容为例说明,其中涉及的具体方法可查看JDK的API了解说明。
- /**
- *
- * @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压缩实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持PHPERZ。
来源: http://www.phperz.com/article/17/1121/360091.html