第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

java遍歷文件時提示空指針錯誤

java遍歷文件時提示空指針錯誤

www說 2019-03-21 18:15:19
import java.io.*;public class FileList{public static int fileTotalNum = 0; //文件總數public static int directoryNum = 0; //文件夾總數public void FList(File f) {     String[] s = f.list();     fileTotalNum+=s.length;     for(int i = 0;i < s.length;i++)     {         File filelist = new File(f.getPath()+s[i]);         if(filelist.isDirectory())         {             directoryNum++;             FList(filelist);         }     } } public static void main(String[] args) {     File file = new File("C:\\");     FileList fl = new FileList();     fl.FList(file);     System.out.println("一共有文件:"+fileTotalNum); }}執(zhí)行以上代碼后提示空指針錯誤,具體如下:Exception in thread "main" java.lang.NullPointerExceptionat FileList.FList(FileList.java:10)at FileList.FList(FileList.java:19)at FileList.main(FileList.java:28)大家,知道,這是為什么嗎?謝謝了
查看完整描述

3 回答

?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

if(f == null || !f.exists) {
return;
}

String[] s = f.list();

if(s == null || s.length == 0) {
return;
}

fileTotalNum+=s.length;


查看完整回答
反對 回復 2019-04-28
?
POPMUISE

TA貢獻1765條經驗 獲得超5個贊

是在這行報錯的:
fileTotalNum += s.length;
要先判斷一下:
if (s != null)

原因:
因為遍歷到C盤下的“System Volume Information”目錄時,這是每個分區(qū)下都有的系統(tǒng)目錄,用戶沒有訪問權限,所以調用listFiles方法會返回null。

JDK文檔中關于listFiles方法:
抽象路徑名數組,這些路徑名表示此抽象路徑名表示的目錄中的文件和目錄。如果目錄為空,那么數組也將為空。如果抽象路徑名不表示一個目錄,或者發(fā)生 I/O 錯誤,則返回 null

PS:
要養(yǎng)成良好的編碼習慣,這是剛開始入行時就需要放在頭一位的任務,技術可以放在其次,學習的時間長著呢。


查看完整回答
反對 回復 2019-04-28
  • 3 回答
  • 0 關注
  • 1094 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號