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();//初始化存放頁(yè)面的文件;
System.out.println("頁(yè)面中出現(xiàn)的pic++++++++++++++++++++++++++++++++++++++++++++++++++");
Iterator it = PicList.iterator();
while(it.hasNext()){
System.out.println(it.next().toString());
}
File filenew = new File("pic");
checkused(filenew);//過(guò)濾掉沒(méi)有用到的圖片
System.out.println("過(guò)濾后有用的pic**************************************************");
Iterator itr =UsedList.iterator();
while(itr.hasNext())
System.out.println(itr.next().toString());
}
/* all.txt文件里存放著所有的頁(yè)面文件 如(.JSP .HTM 等)all.txt可以作為一個(gè)參數(shù)傳進(jìn)來(lái)
* 對(duì)all.txt文件進(jìn)行出始化
* */
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(); //讀入一行(每行存放的是一個(gè)頁(yè)面文件 例如List.jsp ...)
while(INPUT!=null){
initResources(INPUT);
INPUT = brr.readLine();
}
brr.close();
} catch (IOException ioe) {
}
}
/*讀入每個(gè)頁(yè)面文件的內(nèi)容
*
*/
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);//對(duì)此行進(jìn)行分析看有沒(méi)有用到圖片
INPUT =br.readLine();
}
br.close();
} catch (IOException ioe) {
}
}
/*檢查頁(yè)面中用到的圖片,并把用到的圖片存放在PicList里面(并且消除掉重復(fù)使用的圖片)
*/
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() + "."); //圖片出現(xiàn)的位置
if(!PicList.contains(matcher.group())){
PicList.add(matcher.group());//判斷此圖片是否重復(fù)使用,如果第一次用該圖片就存放在PicList中
}
else
{
System.out.println("此圖片已經(jīng)存在");
}
}
}
/*判斷圖片庫(kù)所在的文件夾里的圖片有那些是頁(yè)面中用到的,有那些是沒(méi)有用到的
* 并且把用到的顧慮出來(lái)放在UsedList里面
*
*/
private static void checkused(File file){
if (file.isFile()) //如果是一個(gè)文件則返回!
return;
else{
System.out.println("PIC庫(kù)里的所有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]);
}
}
}
}
}
要么忙著生存,要么趕著去死!人總是要做點(diǎn)什么的!