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]);
}
}
}
}
}
要么忙著生存,要么趕著去死!人總是要做點什么的!