请问如何实现zip压缩数据流(不是压文件),谢谢 rt 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 package tools;/* * Created on Apr 4, 2005 * * TODO To change the template for this generated file go to * Window - Preferences - Java - Code Style - Code Templates *//** * @author shaohua.luo * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates */import java.io.IOException;import java.io.ByteArrayOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;import java.io.ByteArrayInputStream;import java.util.zip.ZipInputStream;public class CompressTest { public CompressTest() { } public static byte[] unzip(byte[] zipBytes) throws IOException { ByteArrayInputStream bais = new ByteArrayInputStream(zipBytes);// String entryName = new String("servletservice"); ZipInputStream zis = new ZipInputStream(bais); zis.getNextEntry(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); final int BUFSIZ = 4096; byte inbuf[] = new byte[BUFSIZ]; int n; while ( (n = zis.read(inbuf, 0, BUFSIZ)) != -1) { baos.write(inbuf, 0, n); } byte[] data = baos.toByteArray(); zis.close(); return data; } public static byte[] zip(byte[] data) throws IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ZipEntry ze = new ZipEntry("servletservice"); ZipOutputStream zos = new ZipOutputStream(baos); zos.putNextEntry(ze); zos.write(data, 0, data.length); zos.close(); byte[] zipBytes = baos.toByteArray(); return zipBytes; } public static void main(String[] args) throws IOException { String a = "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+ "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString " + "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+ "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString "; byte[] abyte = a.getBytes(); byte[] testbyte1 = null; byte[] testbyte2 = null; testbyte1 = zip(abyte); //??1// testbyte2 = unzip(testbyte1); //??2 //byte[]<->String<->byte[] String b = new sun.misc.BASE64Encoder().encode(testbyte1); byte[] testbyte3 = new sun.misc.BASE64Decoder().decodeBuffer(b); testbyte2 = unzip(testbyte3); System.out.println(new String(testbyte2)+": " + testbyte1.length+ " " + a.length()); }} File length()问题 面试未解题目系列 二....希望得到答案会什么答什么我最后整理 连数据库的程序,打成Jar包后的提示连接数据库失败 修改一个错误 junit 在测试中的System.out.println("sddfssdf");怎么无法输出来呢?但在非测试方法里可以输出来。 java连接数据库sqlserver的问题 BoxLayout的小问题 关于JBuilder的问题 为什么我做的JSplitPane拖到一定程度就不能再拖动了? 求大神帮帮忙,关于读取txt文件,用string array awt中的窗口面板问题 如何初始化一个List ?
/*
* Created on Apr 4, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*//**
* @author shaohua.luo
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
import java.io.IOException;
import java.io.ByteArrayOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.ByteArrayInputStream;
import java.util.zip.ZipInputStream;public class CompressTest {
public CompressTest() {
} public static byte[] unzip(byte[] zipBytes)
throws IOException {
ByteArrayInputStream bais = new ByteArrayInputStream(zipBytes);
// String entryName = new String("servletservice");
ZipInputStream zis = new ZipInputStream(bais);
zis.getNextEntry();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
final int BUFSIZ = 4096;
byte inbuf[] = new byte[BUFSIZ];
int n;
while ( (n = zis.read(inbuf, 0, BUFSIZ)) != -1) {
baos.write(inbuf, 0, n);
}
byte[] data = baos.toByteArray();
zis.close();
return data;
} public static byte[] zip(byte[] data)
throws IOException {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
ZipEntry ze = new ZipEntry("servletservice");
ZipOutputStream zos = new ZipOutputStream(baos);
zos.putNextEntry(ze);
zos.write(data, 0, data.length);
zos.close();
byte[] zipBytes = baos.toByteArray();
return zipBytes;
} public static void main(String[] args)
throws IOException {
String a = "compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+
"compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString " +
"compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compres\nsString compressString compressString compressString compressSsdfdsfsdtring compressString compressString compressString compressString "+
"compressString compressdfsdfsdfsdfsdsString compressSsdf3245234tring compressString compressString compressString compressString compressString compressString compressSsdfdsfsdtring compressString \ncompressString compressString compressString ";
byte[] abyte = a.getBytes();
byte[] testbyte1 = null;
byte[] testbyte2 = null;
testbyte1 = zip(abyte); //??1
// testbyte2 = unzip(testbyte1); //??2
//byte[]<->String<->byte[]
String b = new sun.misc.BASE64Encoder().encode(testbyte1);
byte[] testbyte3 = new sun.misc.BASE64Decoder().decodeBuffer(b);
testbyte2 = unzip(testbyte3); System.out.println(new String(testbyte2)+": " + testbyte1.length+ " " + a.length()); }}