- 浏览: 75208 次
- 性别:
- 来自: 北京
-
最新评论
-
TopLongMan:
...
weblogic与websphere的区别———转 -
wendellup_account1:
thanks.
tomcat 只输ip或localhost就可以直接访问项目的步骤 -
kittychina:
不要把程序员的低薪归结为程序员自己不努力!虽然我们都提倡要努力 ...
程序员前途
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.io.IOUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class TestXml {
/**
* 压缩
*/
public static String zipXml(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
BASE64Encoder base64encoder = new BASE64Encoder();
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes("UTF-8"));
gzip.close();
return base64encoder.encode(out.toByteArray());
}
/**
* 解压
*/
public static String unZipXml(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
BASE64Decoder base64decoder = new BASE64Decoder();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = base64decoder.decodeBuffer(str);
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
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("UTF-8");
}
public static void main(String[] args) throws IOException {
InputStream is = null;
try {
File file = new File("E:hz.xml");
is = (InputStream )new FileInputStream(new File("E:hz.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Byte[] bt = null;
// BufferedInputStream input = new BufferedInputStream(is);// 输入流,用于接收请求的数据
// ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(2048);// 请求数据存放对象,使用了参数2048
//
// byte[] bufferRead = new byte[1024];// 数据缓冲区
// int count = 0;// 每个缓冲区的实际数据长度
//
// while ((count = input.read(bufferRead)) != -1) {
// byteOutput.write(bufferRead, 0, count);
// }
List ioList = IOUtils.readLines(is);
StringBuilder sb = new StringBuilder(1024);
for(int i =0; i < ioList.size() ; i++){
sb.append(ioList.get(i));
}
String inStr = sb.toString();
System.out.println("原长度:" + inStr.length());
String outStr = zipXml(inStr);
System.out.println("长度:" + outStr.length());
System.out.println((double)inStr.length()/outStr.length());
System.out.println("压缩比:" + (double)(int)(((double)inStr.length()/outStr.length() + 0.005) * 100) / 100 + " : 1");
System.out.println("压缩后内容:" + outStr);
// String unStr = unZipXml(outStr);
// System.out.println("长度:" + unStr.length());
// System.out.println("解压后内容:" + unStr);
}
}
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;
import org.apache.commons.io.IOUtils;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
public class TestXml {
/**
* 压缩
*/
public static String zipXml(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
BASE64Encoder base64encoder = new BASE64Encoder();
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes("UTF-8"));
gzip.close();
return base64encoder.encode(out.toByteArray());
}
/**
* 解压
*/
public static String unZipXml(String str) throws IOException {
if (str == null || str.length() == 0) {
return str;
}
BASE64Decoder base64decoder = new BASE64Decoder();
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] bytes = base64decoder.decodeBuffer(str);
ByteArrayInputStream in = new ByteArrayInputStream(bytes);
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("UTF-8");
}
public static void main(String[] args) throws IOException {
InputStream is = null;
try {
File file = new File("E:hz.xml");
is = (InputStream )new FileInputStream(new File("E:hz.xml"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
// Byte[] bt = null;
// BufferedInputStream input = new BufferedInputStream(is);// 输入流,用于接收请求的数据
// ByteArrayOutputStream byteOutput = new ByteArrayOutputStream(2048);// 请求数据存放对象,使用了参数2048
//
// byte[] bufferRead = new byte[1024];// 数据缓冲区
// int count = 0;// 每个缓冲区的实际数据长度
//
// while ((count = input.read(bufferRead)) != -1) {
// byteOutput.write(bufferRead, 0, count);
// }
List ioList = IOUtils.readLines(is);
StringBuilder sb = new StringBuilder(1024);
for(int i =0; i < ioList.size() ; i++){
sb.append(ioList.get(i));
}
String inStr = sb.toString();
System.out.println("原长度:" + inStr.length());
String outStr = zipXml(inStr);
System.out.println("长度:" + outStr.length());
System.out.println((double)inStr.length()/outStr.length());
System.out.println("压缩比:" + (double)(int)(((double)inStr.length()/outStr.length() + 0.005) * 100) / 100 + " : 1");
System.out.println("压缩后内容:" + outStr);
// String unStr = unZipXml(outStr);
// System.out.println("长度:" + unStr.length());
// System.out.println("解压后内容:" + unStr);
}
}
- UseTextarea.rar (2.3 KB)
- 下载次数: 5
发表评论
-
Deployment failure on Tomcat 6.x. Could not copy all resources
2013-02-18 10:52 1593在myeclipse 部署项目的时候报:Deployment ... -
Java用native2ascii命令做unicode编码转换
2012-11-15 18:57 925背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确 ... -
控制台有如下信息:handling transient entity in delete processing
2012-10-24 11:28 3930通过dao的get方法得到了相应的永续对象,再用dao的del ... -
hibernate中get方法和load方法的根本区别
2012-10-23 11:27 766hibernate中get方法和load方 ... -
weblogic与websphere的区别———转
2012-09-17 17:04 14851. 可靠性,可扩展性,可用性 根据最近的公开评测和客 ... -
struts2 <s:property/>标签的使用--输出时间格式转换
2012-09-12 15:17 24671.按需输出特定长度的字符 例:<s:property ... -
struts2 标签
2012-09-11 16:49 907Struts2常用标签总结 一 ... -
ids for this class must be manually assigned before calling save()..
2012-09-06 11:39 845引起问题的原因: 由Hibernate根据数据库表自动生成的& ... -
MyEclipse自动提示设置、spring 自动提示
2012-09-04 10:18 2306环境:MyEclipse 6.5 问题 ... -
MyEclipse中删除添加的Hibernate Capabilities
2012-09-03 16:33 1047我是通过菜单MyEclipse->Project Cap ... -
JSP中的两种包含页面的方法
2012-09-03 10:16 708[java] view plaincopy //第一种:inc ... -
log4j的配置详解
2012-08-30 11:05 751第一步:加入log4j-1.2.8.j ... -
weblogic搭建环境遇到的错误
2012-07-26 16:47 52122012-07-23 16:31:54,587 ERROR [ ... -
linux 安装 jrmc
2012-07-16 11:24 1017下载jrockit-jdk1.6.0_20-R28.1.0-4 ... -
hibernate延迟加载
2012-06-21 17:04 774延迟加载: 首先说明Hibernate3延迟加载只对其中的l ... -
为什么重写 equals 和 hashCode 方法
2012-06-21 13:05 946一. 关键字: Object 、 eq ... -
tomcat 启动时加载项目
2012-05-30 15:22 800启动加载项目配置 在server.xml中添加如下: < ... -
tomcat6.0.20配置jndi,spring配置
2012-05-30 15:15 7181、环境 1)tomcat 6.0.20 ... -
request.getRemoteAddr()和request.getRemoteHost()
2012-05-24 17:12 1054request.getRemoteAddr()是获得客户端的i ... -
DTO或Form中的属性命名时,属性名称的前两个字母必须小写
2012-05-24 17:12 914DTO或Form中的属性命名时,属性名称的前两个字母必须小写。 ...
相关推荐
过滤器可以用于实现如登录检查、GZIP压缩、字符编码转换等功能,且能链式使用,提高代码复用。 5. **监听器(Listener)**:监听器是实现了特定接口的类,用于监听Servlet上下文、会话或Servlet实例的特定事件。...
7. **Filter和Listener**:Servlet规范还定义了Filter和Listener接口,Filter可以拦截请求并进行预处理或后处理,比如登录检查、GZIP压缩等。Listener可以监听Web应用中的特定事件,如session创建、销毁、请求初始化...
利用HTTP头部优化网络传输,如GZIP压缩。 7. **现代Web API - Fetch API** - Fetch API 是一个现代的替代XMLHttpRequest的方式,它返回Promise,使得异步操作更容易理解和处理。 总结,Ajax作为网页开发中的重要...
例如,可以使用Filter实现登录验证、GZIP压缩等功能。 5. **ServletContext**: - 它提供了全局的信息共享,比如在整个Web应用中存储和获取数据,或者注册监听器。 6. **ServletConfig**: - 每个Servlet实例都...
例如,登录验证、GZIP压缩、字符编码转换等都可以通过过滤器实现。 7. **监听器(Listener)**:Servlet规范定义了一系列事件监听器接口,如`ServletContextListener`、`HttpSessionListener`等,可以监听Servlet上...
J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为简化企业级应用开发而提出的一套技术标准,它提供了构建分布式系统的基础框架。在J2EE环境中,开发者可以利用多种组件模型来构建复杂的应用程序,...