package com.cn.test;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class CheckPic{
private static String REGEX;
private static String INPUT;
private static Pattern pattern;
private static Matcher matcher;
private static List PicList = new ArrayList();
private static List UsedList = new ArrayList();
public static void main(String[] args) {
REGEX="[a-z0-9A-Z.?_]*.(jpg|jpeg|gif|png)";
pattern = Pattern.compile(REGEX);
initTxt();//初始化存放页面的文件;
System.out.println("页面中出现的pic++++++++++++++++++++++++++++++++++++++++++++++++++");
Iterator it = PicList.iterator();
while(it.hasNext()){
System.out.println(it.next().toString());
}
File filenew = new File("pic");
checkused(filenew);//过滤掉没有用到的图片
System.out.println("过滤后有用的pic**************************************************");
Iterator itr =UsedList.iterator();
while(itr.hasNext())
System.out.println(itr.next().toString());
}
/* all.txt文件里存放着所有的页面文件 如(.JSP .HTM 等)all.txt可以作为一个参数传进来
* 对all.txt文件进行出始化
* */
private static void initTxt(){
BufferedReader brr=null;
try {
brr = new BufferedReader(new FileReader("all.txt"));
} catch (FileNotFoundException fnfe) {
System.out.println("Cannot locate input file1! " + fnfe.getMessage());
System.exit(0);
}
try {
INPUT = brr.readLine(); //读入一行(每行存放的是一个页面文件 例如List.jsp ...)
while(INPUT!=null){
initResources(INPUT);
INPUT = brr.readLine();
}
brr.close();
} catch (IOException ioe) {
}
}
/*读入每个页面文件的内容
*
*/
private static void initResources(String txtname) {
BufferedReader br = null ;
try {
br = new BufferedReader(new FileReader(txtname));
} catch (FileNotFoundException fnfe) {
System.out.println("Cannot locate input file2! " + fnfe.getMessage()); //判断此文件是否存在
System.exit(0);
}
try {
INPUT = br.readLine();//读入.jsp文件中的每一行
while(INPUT!=null){
processTest(INPUT);//对此行进行分析看有没有用到图片
INPUT =br.readLine();
}
br.close();
} catch (IOException ioe) {
}
}
/*检查页面中用到的图片,并把用到的图片存放在PicList里面(并且消除掉重复使用的图片)
*/
private static void processTest(String Input) {
matcher = pattern.matcher(Input);
while (matcher.find()) {
System.out.println("I found the text \"" + matcher.group()
+ "\" starting at index " + matcher.start()
+ " and ending at index " + matcher.end() + "."); //图片出现的位置
if(!PicList.contains(matcher.group())){
PicList.add(matcher.group());//判断此图片是否重复使用,如果第一次用该图片就存放在PicList中
}
else
{
System.out.println("此图片已经存在");
}
}
}
/*判断图片库所在的文件夹里的图片有那些是页面中用到的,有那些是没有用到的
* 并且把用到的顾虑出来放在UsedList里面
*
*/
private static void checkused(File file){
if (file.isFile()) //如果是一个文件则返回!
return;
else{
System.out.println("PIC库里的所有pic如下#######################################");
for(int i=0;i<file.list().length;i++){
System.out.println(file.list()[i]);
if(PicList.contains(file.list()[i])){
UsedList.add(file.list()[i]);
}
}
}
}
}
要么忙着生存,要么赶着去死!人总是要做点什么的!