經過一個多月的Java學習,我們慢慢深入了解了Java中的一些比較高級的方法!但這些方法在你調試的時候一定要慎重!!不要等待失去了整個硬盤,才后悔莫及!!! 如果你在編程的時候多長個心眼,這些小的錯誤是可以避免的!!!
下面我們來看一下一個讓人很崩潰的錯誤,這個錯誤讓我感到不可思議!!代碼如下:
import java.io.File;
public class KillBackServer {
public static void main(String[] args){
File f = new File("C:\\");
fun(f);
}
//定義一個靜態函數,用來實現對一盤文件的遍歷
public static void fun(File f)
{
if(f.isDirectory())
{
File file[] = f.listFiles();
try
{
for(int i = 0 ; i <file.length ; i++)
{
fun(file[i]);
}
}
catch(Exception e){}
}
else
{
if("我是病毒.exe".equals(f.getName()))
System.out.println(f);
//僅僅當程序找到"我是病毒.exe"的 時候才執行這一句代碼
//f.delete();
System.out.println("該病毒已被查殺");}
System.out.println(f.getPath() + "***********************");
}
}
}
大家一定要注意紅色字體的代碼!!!我之所以注釋了,就是怕直接復制我的代碼,然后運行……
如果這樣后果你是知道的……
本來這段代碼是用來掃描C盤,找到"我是病毒.exe"文件,并把它刪除,判斷一個文件名,用的是equals這是對的!!!
錯就錯在:if()判斷,大家都明白了吧!
希望大家以后不要因為犯了這個低級錯誤,而把自己的硬盤給了格了= = |||
其實,有很多方法可以避免這種錯誤!!!比如,你可以在f.delete(); 后面加上一句打印語句,這樣的話,在你測試的時候就會發現,原來if語句后面少一個大括號……
這個錯誤寫出來僅僅為了提醒大家規范的重要性!!!
posted on 2010-11-17 21:29
tovep 閱讀(2672)
評論(16) 編輯 收藏