• 大小: 321KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-14
  • 语言: Java
  • 标签: java  js  css  图片  合并  

资源简介

技术点: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.base64Decoder.jar
     文件       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

评论

共有 条评论