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