小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

字符串壓縮?java

 pengx 2010-03-23

package unzip;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import java.util.zip.*;

// 將一個字符串按照zip方式壓縮和解壓縮
public class ZipUtil {

  // 壓縮
  public static String compress(String str) throws IOException {
    if (str == null || str.length() == 0) {
      return str;
    }
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    GZIPOutputStream gzip = new GZIPOutputStream(out);
    gzip.write(str.getBytes());
    gzip.close();
    return out.toString("ISO-8859-1");
  }

  // 解壓縮
  public static String uncompress(String str) throws IOException {
    if (str == null || str.length() == 0) {
      return str;
    }
    ByteArrayOutputStream out = new ByteArrayOutputStream();
    ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes("ISO-8859-1"));
    GZIPInputStream gunzip = new GZIPInputStream(in);
    byte[] buffer = new byte[256];
    int n;
    while ((n = gunzip.read(buffer)) >= 0) {
      out.write(buffer, 0, n);
    }
    // toString()使用平臺默認(rèn)編碼,也可以顯式的指定如toString("GBK")
    return out.toString("ISO-8859-1");
  }

 
  public static final byte[] compress1(String str) {
  if(str == null)
  return null;
   
  byte[] compressed;
  ByteArrayOutputStream out = null;
  ZipOutputStream zout = null;
   
  try {
  out = new ByteArrayOutputStream();
  zout = new ZipOutputStream(out);
  zout.putNextEntry(new ZipEntry("0"));
  zout.write(str.getBytes());
  zout.closeEntry();
  compressed = out.toByteArray();
  } catch(IOException e) {
  compressed = null;
  } finally {
  if(zout != null) {
  try{zout.close();} catch(IOException e){}
  }
  if(out != null) {
  try{out.close();} catch(IOException e){}
  }
  }
   
  return compressed;
  }
   
 
  public static final String decompress(byte[] compressed) {
  if(compressed == null)
  return null;
   
  ByteArrayOutputStream out = null;
  ByteArrayInputStream in = null;
  ZipInputStream zin = null;
  String decompressed;
  try {
  out = new ByteArrayOutputStream();
  in = new ByteArrayInputStream(compressed);
  zin = new ZipInputStream(in);
  ZipEntry entry = zin.getNextEntry();
  byte[] buffer = new byte[1024];
  int offset = -1;
  while((offset = zin.read(buffer)) != -1) {
  out.write(buffer, 0, offset);
  }
  decompressed = out.toString();
  } catch (IOException e) {
  decompressed = null;
  } finally {
  if(zin != null) {
  try {zin.close();} catch(IOException e) {}
  }
  if(in != null) {
  try {in.close();} catch(IOException e) {}
  }
  if(out != null) {
  try {out.close();} catch(IOException e) {}
  }
  }
   
  return decompressed;
  }

  // 測試方法
  public static void main(String[] args) throws IOException {
   System.out.println("starttime="+ZipUtil.compress("starttime"));
   String s=ZipUtil.compress("starttime");
   System.out.println(s);
    System.out.println(ZipUtil.uncompress(s));
    System.out.println("starttime="+ZipUtil.compress1("starttime"));
    System.out.println("starttime="+ZipUtil.decompress(ZipUtil.compress1("starttime")));
  }

}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多