资源简介
技术点:1、使用htmlparser解析html文件,得到html代码里的js、css、img链接 2、将相对路径的链接转变成绝对路径,并读取资源 3、将css和js合并到html 4、将图片转换成base64编码,写入标签的src

代码片段和文件信息
package jsCssInHtml;
import java.io.BufferedWriter;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.htmlparser.Parser;
import org.htmlparser.Tag;
import org.htmlparser.filters.TagNameFilter;
import org.htmlparser.lexer.Lexer;
import org.htmlparser.lexer.Page;
import org.htmlparser.util.DefaultParserFeedback;
import org.htmlparser.util.NodeList;
import org.htmlparser.util.ParserException;
import Decoder.base64Encoder;
public class JsCssImgInHtml {
private URL strWeb = null; //网址
private String strEncoding = null; //编码
private String strText = null; //网页文本
private String strFileName = null; //导出路径
public JsCssImgInHtml(String strText String strUrl String strEncoding String strFileName) {
try {
strWeb = new URL(strUrl);
} catch (MalformedURLException e) {
e.printStackTrace();
return;
}
this.strText = strText;
this.strEncoding = strEncoding;
this.strFileName = strFileName;
}
// 将InputStream转换成按字符编码的String
public static String InputStreamTOString(InputStream in String encoding) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024 * 1000];
int count = -1;
while ((count = in.read(data 0 1024 * 1000)) != -1) {
outStream.write(data 0 count);
}
data = null;
return new String(outStream.toByteArray() encoding);
}
// 将InputStream转换成byte数组
public static byte[] InputStreamTOByte(InputStream in) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] data = new byte[1024 * 1000];
int count = -1;
while ((count = in.read(data 0 1024 * 1000)) != -1) {
outStream.write(data 0 count);
}
data = null;
return outStream.toByteArray();
}
//根据链接获取html源代码
public static String getHtmlText(String strUrl String strEncoding) {
try {
URL url = new URL(strUrl);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
InputStream in = connection.getInputStream();
return InputStreamTOString(in strEncoding);
} catch (Exception e) {
return ““;
}
}
//相对路径转绝对路径
public static String makeAbsoluteURL(URL strWeb String innerURL) {
// 去除后缀
int pos = innerURL.indexOf(“?“);
if (pos != -1) {
innerURL = innerURL.substring(0 pos);
}
if (innerURL != null && innerURL.toLowerCase().indexOf(“http“) == 0) {
return innerURL;
}
URL linkUri = null;
try {
linkUri = new URL(strWeb innerURL
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-08-14 14:13 jsCssInHtml\
文件 738 2017-08-17 18:47 jsCssInHtml\.classpath
文件 387 2017-08-14 09:00 jsCssInHtml\.project
目录 0 2017-08-14 09:00 jsCssInHtml\.settings\
文件 598 2017-08-14 09:00 jsCssInHtml\.settings\org.eclipse.jdt.core.prefs
目录 0 2017-08-17 18:47 jsCssInHtml\bin\
目录 0 2017-08-17 18:47 jsCssInHtml\bin\jsCssInHtml\
文件 10372 2017-08-18 15:08 jsCssInHtml\bin\jsCssInHtml\JsCssImgInHtml.class
目录 0 2017-08-17 18:47 jsCssInHtml\lib\
文件 69798 2013-09-10 16:26 jsCssInHtml\lib\filterbuilder.jar
文件 71952 2013-09-10 16:26 jsCssInHtml\lib\htmllexer.jar
文件 138838 2013-09-10 16:26 jsCssInHtml\lib\htmlparser.jar
文件 15604 2013-09-10 16:26 jsCssInHtml\lib\sitecapturer.jar
文件 7471 2017-08-17 18:47 jsCssInHtml\lib\sun.misc.ba
文件 42811 2013-09-10 16:26 jsCssInHtml\lib\thumbelina.jar
目录 0 2017-08-14 09:13 jsCssInHtml\src\
目录 0 2017-08-14 09:13 jsCssInHtml\src\jsCssInHtml\
文件 10635 2017-08-18 15:08 jsCssInHtml\src\jsCssInHtml\JsCssImgInHtml.java
- 上一篇:android的显示gif图片的demo
- 下一篇:quartz 定时任务jar包
相关资源
- jsonarray所必需的6个jar包.rar
- JSP企业人事管理系统设计(源代码+论
- 当当网完整项目、包括js、css、html
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- 实现一个图书管理系统
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- JSP,SQL,MVC的选课系统
- Java编写的qq聊天室
- 基于JSP的学生宿舍管理系统(源码 数
- JSP选课管理系统
- mysql jsp网站源码下载
- JSP做的化妆品商城
- Jsp购物车实例
- 商店商品管理系统 JAVA写的 有界面
评论
共有 条评论