- 浏览: 73836 次
- 性别:
- 来自: 北京
最新评论
-
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 1558在myeclipse 部署项目的时候报:Deployment ... -
Java用native2ascii命令做unicode编码转换
2012-11-15 18:57 881背景:在做Java开发的时候,常常会出现一些乱码,或者无法正确 ... -
控制台有如下信息:handling transient entity in delete processing
2012-10-24 11:28 3902通过dao的get方法得到了相应的永续对象,再用dao的del ... -
hibernate中get方法和load方法的根本区别
2012-10-23 11:27 752hibernate中get方法和load方 ... -
weblogic与websphere的区别———转
2012-09-17 17:04 14331. 可靠性,可扩展性,可用性 根据最近的公开评测和客 ... -
struts2 <s:property/>标签的使用--输出时间格式转换
2012-09-12 15:17 24451.按需输出特定长度的字符 例:<s:property ... -
struts2 标签
2012-09-11 16:49 876Struts2常用标签总结 一 ... -
ids for this class must be manually assigned before calling save()..
2012-09-06 11:39 830引起问题的原因: 由Hibernate根据数据库表自动生成的& ... -
MyEclipse自动提示设置、spring 自动提示
2012-09-04 10:18 2283环境:MyEclipse 6.5 问题 ... -
MyEclipse中删除添加的Hibernate Capabilities
2012-09-03 16:33 1003我是通过菜单MyEclipse->Project Cap ... -
JSP中的两种包含页面的方法
2012-09-03 10:16 696[java] view plaincopy //第一种:inc ... -
log4j的配置详解
2012-08-30 11:05 709第一步:加入log4j-1.2.8.j ... -
weblogic搭建环境遇到的错误
2012-07-26 16:47 51862012-07-23 16:31:54,587 ERROR [ ... -
linux 安装 jrmc
2012-07-16 11:24 1006下载jrockit-jdk1.6.0_20-R28.1.0-4 ... -
hibernate延迟加载
2012-06-21 17:04 740延迟加载: 首先说明Hibernate3延迟加载只对其中的l ... -
为什么重写 equals 和 hashCode 方法
2012-06-21 13:05 904一. 关键字: Object 、 eq ... -
tomcat 启动时加载项目
2012-05-30 15:22 767启动加载项目配置 在server.xml中添加如下: < ... -
tomcat6.0.20配置jndi,spring配置
2012-05-30 15:15 7021、环境 1)tomcat 6.0.20 ... -
request.getRemoteAddr()和request.getRemoteHost()
2012-05-24 17:12 1044request.getRemoteAddr()是获得客户端的i ... -
DTO或Form中的属性命名时,属性名称的前两个字母必须小写
2012-05-24 17:12 898DTO或Form中的属性命名时,属性名称的前两个字母必须小写。 ...
相关推荐
Sun 公司提供了 Java API for XML Parsing(JAXP)接口来使用 SAX 和 DOM。通过 JAXP,我们可以使用任何与 JAXP 兼容的 XML 解析器。 JAXP 接口包含了三个包: 1. org.w3c.dom:W3C 推荐的用于 XML 标准规划文档...
第一个软件,传输流/文件的压缩,利用Internet中惯常使用的gzip, deflate算法,可以和sun java的GZipInputStream和GZipOutputStream互操作 第二个软件,基于HTTP的压缩传输软件,可完全和IE的VBScript和...
Java API for XML Processing,简称JAXP,是Sun Microsystems推出的一种用于处理XML的Java接口,旨在为XML解析提供一种统一的、与供应商无关的访问方式。JAXP并不直接进行XML解析,而是作为一个抽象层,使得开发者...
Sun Directory Server,也被称为Sun One Directory Server,是Sun Microsystems(现已被Oracle公司收购)开发的一款强大的 Lightweight Directory Access Protocol (LDAP) 服务器。LDAP是一种开放标准的目录服务协议...
Docker中的Nginx服务器作为一个流行的反向代理和负载均衡器,可以通过配置实现对字体、图片等静态资源的GZIP压缩。本文将详细介绍如何在Docker环境下配置Nginx以实现这一功能,主要涉及`docker-compose.yml`、`nginx...
《太阳公司Sun的Java实例手册》是一份专为Java开发者准备的重要参考资料,它详细地涵盖了Sun Microsystems(现已被Oracle收购)在Java编程领域的实践经验和技术精髓。这份手册旨在帮助程序员更好地理解和应用Java...
标题 "javax.xml.bind jdk1.5缺包" 指出的问题是在使用Java 1.5版本时,遇到了与`javax.xml.bind`相关的类找不到的异常。具体来说,异常信息 "java.lang.ClassNotFoundException: ...
《深入解析JAXP:Sun的Java API for XML解析》 在探讨JAXP(Java API for XML Processing)这一主题时,我们需首先明确其在Java与XML领域中的定位与价值。JAXP并非旨在革新XML处理的方式,也不提供额外的语法分析...
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd
IBM JDK和SUN JDK在XML解析上的主要组件包括DOM(Document Object Model)、SAX(Simple API for XML)和JAXB(Java Architecture for XML Binding)。这些组件分别对应于不同的解析策略,DOM以树形结构存储整个XML...
《Sun的J2EE实例:宠物商店》是一个经典的Java企业级应用示例,它展示了如何使用Sun Microsystems的Java 2 Platform, Enterprise Edition (J2EE) 技术来构建一个完整的网上购物系统。这个实例是Sun J2EE开发的一个...
FtpClient(sun)上传下载实例代码
《太阳公司(Sun)的Java实例手册》是Java学习者的重要参考资料,它涵盖了Sun公司(后被甲骨文公司收购)对于Java编程语言的实践应用和深入解析。这份压缩包包含两个文件:`Codesamples.PDF`和`www.chinahtml.com.txt`...
这个" SUN公司的java实例代码 "压缩包包含了SUN公司官方提供的Java编程实例,是学习和理解Java语言特性的宝贵资源。让我们深入探讨一下这些实例可能涵盖的知识点。 1. **Java基础语法**:实例代码可能包括Java的...
标题中的问题“无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl”指出,这可能是Java Web应用开发中遇到的一个常见错误,涉及到JSP(JavaServer Pages)和JSTL(Java...
《SUN公司J2ME简单游戏实例:探索移动平台的游戏开发》 J2ME,全称为Java 2 Micro Edition,是Java技术在嵌入式设备和移动设备上的应用平台,尤其在早期智能手机和平板电脑中广泛应用。SUN公司,即现在的Oracle公司...