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文件并抽取a href相关连接和链接标题

import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.*; import java.i...

Java——获取网页内容并在本地生成HTML文件

使用Java.NET包下的URL类,可以将一个网页(链接)封装成一个URL对象。  URL对象有一个openStream()方法,使用该方法可以获取该网页的输入流,我们可以通过读取输入流的方式获得网...

JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法

WORD Java代码 package textReader;  import java.io.*;  import org.apache.poi.hwpf.extractor.Wor...

HTML文件基本标记(四)-设计网页文本内容

1、标题文字 标题文字标签:h1~h6; 标题文字对齐方式:align=“left(左对齐)、center(居中)、right(右对齐)” 2、设置文字格式 设置文字字体:face=“字体名称”; 设...

JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例

以下是Java对几种文本文件内容读取代码。其中,OFFICE文档(WORD,EXCEL)使用了POI控件,PDF使用了PDFBOX控件。 WORD: package textReader; ...
  • zlb824
  • zlb824
  • 2011年11月28日 16:52
  • 1222

js动态设置表格内容,生成HTML文件

通过js方式设置table中数据内容,并生成为HTML文件。这篇文章只是为动态设置表格内容作个范例,里面有一些常用的js方法。  var i = 0;  function addRow()...

PHPCMS 自定义内容页HTML文件名称

序言:帮一个客户用PHPCMS做了一个网站,要自定义内容页HTML文件名称。 下面将一步一步来修改程序文件,一共涉及到model.sql、url.class.php、html.class.php这三...

java生成word,html文件并将内容保存至数据库 (http://blog.163.com/whs3727@126/blog/static/729915772007325112014115/)

java生成word,html文件并将内容保存至数据库   2007-04-25 11:20:14|  分类: Java|举报|字号 订阅 http://hi....

JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例

以下是Java对几种文本文件内容读取代码。其中,OFFICE文档(WORD,EXCEL)使用了POI控件,PDF使用了PDFBOX控件。   点击这里 查看相关控件的下载地址和配置方法。 ...

JAVA读取WORD,EXCEL,PDF,TXT,RTF,HTML文件文本内容的方法示例

来自:http://blog.csdn.net/zlb824/article/details/7020191 以下是Java对几种文本文件内容读取代码。其中,OFFICE文档(WORD,EX...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:html文件替换其中的href的内容
举报原因:
原因补充:

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