html文件替换其中的href的内容

原创 2015年07月09日 15:12:01
package com.util;


import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class FileReadWriteReplacer {


public static void readFolder(String filePath, File outPath,String replaceContext) {
try {
// 读取指定文件夹下的所有文件
File file = new File(filePath);
if (!file.isDirectory()) {
System.out.println("---------- 该文件不是一个目录文件 ----------");
} else if (file.isDirectory()) {
System.out.println("---------- 这是一个目录文件夹 ----------");
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++) {
File readfile = new File(filePath + "\\" + filelist[i]);
// String path = readfile.getPath();//文件路径
String absolutepath = readfile.getAbsolutePath();// 文件的绝对路径
String filename = readfile.getName();// 读到的文件名
if(filename.contains(".html")||filename.contains(".htm")){
readFile(absolutepath, filename, i, outPath,replaceContext);// 调用 readFile
} // 方法读取文件夹下所有文件
}
System.out.println("---------- 所有文件操作完毕 ----------");
}
} catch (Exception e) {
e.printStackTrace();
}
}


public static void readFile(String absolutepath, String filename,
int index, File targetFile,String replaceContext) {
try {
BufferedReader bufReader = new BufferedReader(
new InputStreamReader(new FileInputStream(absolutepath),"UTF-8"));
StringBuffer strBuffer = new StringBuffer();
String empty = "href=\""+replaceContext+"\"";
String tihuan = "";
String pattern= "href=\"([^\"]*)\""; //正则判断 herf内容
Pattern p = Pattern.compile(pattern, 2 | Pattern.DOTALL); 
for (String temp = null; (temp = bufReader.readLine()) != null; temp = null) {
 
Matcher m = p.matcher(temp);//匹配正则内容
if(m.find()) { 
   tihuan="href=\""+m.group(1)+"\"";
temp = temp.replace(tihuan, empty);// 替换为你想要的东东
}
strBuffer.append(temp);
strBuffer.append(System.getProperty("line.separator"));
}
bufReader.close();
if (targetFile.exists() == false) { 
targetFile.mkdirs();
System.out.println("已成功创建输出文件夹:" + targetFile);
}
PrintWriter printWriter = new PrintWriter(targetFile + "\\" + filename);
printWriter.write(strBuffer.toString().toCharArray());
printWriter.flush();
printWriter.close();
System.out.println("第 " + (index + 1) + " 个文件   " + absolutepath
+ "  已成功输出到    " + targetFile + "\\" + filename);
} catch (Exception e) {
e.printStackTrace();
}
}


}


测试页面


package com.util;


import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


public class Test {
public static void main(String[] args) {


Properties pro = new Properties();
Test ttt = new Test();
try {
/*   InputStream path = ttt
.getClass()
.getClassLoader()
.getResourceAsStream(
"GalaxyLifeAppStaticEnvConfig.properties");

pro.load(path);

*/  //或者

// Properties pro = new Properties();


File settingFile = new File(
"config_env/DEV/GalaxyLifeAppStaticEnvConfig.properties");


pro.load(new FileInputStream(settingFile));

// 输出文件路径
File targetFile = new File("C://ff//");

if(targetFile.exists()==false){
targetFile.mkdirs();
}

/*
* 三个参数 1.读取文件路径 2.输出文件路径 3.替换内容
*/
FileReadWriteReplacer.readFolder("WebRoot", targetFile,
pro.getProperty("GalaxyLifeAppStatic.value"));
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


}


}

属性文件


GalaxyLifeAppStatic.key=#{key}


GalaxyLifeAppStatic.value=http://www.kkkk.com/


java读取html并替换相关内容

import java.io.*;/** * Created by IntelliJ IDEA. * User: zl420226 * Date: 2010-4-10 * Time: 13:58:23...
  • zhulin902
  • zhulin902
  • 2010年04月10日 14:53
  • 4403

[js高手之路] dom常用API【appendChild,insertBefore,removeChild,replaceChild,cloneNode】详解与应用

本文主要讲解DOM常用的CURD操作,appendChild(往后追加节点),insertBefore(往前追加节点),removeChild(移除节点),replaceChild(替换节点),clo...
  • iseagold
  • iseagold
  • 2017年08月23日 21:13
  • 186

java中使用String的replace方法替换html模板保存文件

在我们的D盘下有这样一个html模板,现在我们要做的就是解析news.template文件,从数据库中提取数据将数据添加到指定的模板位置上  news.template   ...
  • qq_26562641
  • qq_26562641
  • 2017年05月22日 17:37
  • 632

【转】JAVA读写文件,如何避免中文乱码

最近在做HTML静态生成,需要从硬盘上把模版文件的内容读出来。然后,替换相关标签写到指定的文件中。无论是读写,都遇到了中文乱码问题。试过多种方法,发现下面一种可以避免中文乱码。(无论读取还是写入一定要...
  • AlphaHinex
  • AlphaHinex
  • 2011年10月12日 09:56
  • 14195

使用Jsoup提取HTML元素,修改HTML内容

Jsoup是一个开源的,专门处理HTML内容的强大工具,下载地址+中文文档地址:http://www.open-open.com/jsoup/。最初开始使用时,由于对网页前端知之甚少,并未感受到Jso...
  • Futureer
  • Futureer
  • 2014年02月22日 15:58
  • 4555

修改div内A标签的href值

通过样式选择器,修改DIV内A标签的HREF值
  • jessezappy
  • jessezappy
  • 2017年11月06日 17:49
  • 231

jquery同时修改a标签的href链接和文字

无论是text $("#pass").attr({ "onclick" : "null", "text" : "已操作" ...
  • plotu_charon
  • plotu_charon
  • 2016年12月08日 01:23
  • 472

ASP.NET正则替换html标签中img src/href

 _temphref = _childhref.Substring(0, _childhref.LastIndexOf('/') + 1);                 _content ...
  • codefighting
  • codefighting
  • 2014年07月31日 00:13
  • 2035

android替换网页html的标签

1.jsoup介绍 很多时候,我们需要从各种网页上面抓取数据,而jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过...
  • sapodilla
  • sapodilla
  • 2017年03月10日 09:56
  • 544

asp.net 后台代码改变a标签的内容文字和链接href

可以这么做,后台设置一个str变量来存a标签需要显示的文字,在a标签的文字那里写,需要改变a标签值时只要在后台改变str的值就可以了。同时href去掉,换成onserverclick,通过后台函数来完...
  • wf824284257
  • wf824284257
  • 2017年03月21日 20:28
  • 1551
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:html文件替换其中的href的内容
举报原因:
原因补充:

(最多只允许输入30个字)