![](/img/trans.png)
[英]How do I get rid of a java.lang.NullPointerException error?
[英]get rid of java.lang.NullPointerException in my following program
當我在/ home / meow目錄中搜索某些內容並列出所有文件時,該程序運行良好,但是當我嘗試列出系統的“ /”上的所有文件時,在打印/ bin目錄的內容后崩潰。 我也嘗試將其作為SUDO java pin執行
import java.io.*;
public class Pin
{
public static void printFiles(String a)
{
File dir = new File(a);
for(File file:dir.listFiles())
{
if(file.isFile())
{
System.out.println(file);
}
else
{
printFiles(file.toString());
}
}
}
public static void main(String[] args)
{
printFiles("/");
}
}
這是我的輸出...
vikkyhacks java # sudo java Pin
/lib64/ld-linux-x86-64.so.2
/bin/ntfsmove
/bin/init-checkconf
/bin/chown
/bin/mt-gnu
/bin/ntfs-3g.usermap
/bin/mountpoint
/bin/plymouth
/bin/s
/bin/bunzip2
/bin/gzexe
/bin/fgconsole
/bin/ntfstruncate
/bin/i
/bin/plymouth-upstart-bridge
/bin/fgrep
/bin/ping
/bin/lesspipe
/bin/rbash
/bin/gzip
/bin/ntfsmftalloc
/bin/lowntfs-3g
/bin/tailf
/bin/bzcat
/bin/tempfile
/bin/domainname
/bin/touch
/bin/zcmp
/bin/mktemp
/bin/nano
/bin/unicode_start
/bin/ln
Exception in thread "main" java.lang.NullPointerException
at Pin.printFiles(Pin.java:9)
at Pin.printFiles(Pin.java:17)
at Pin.printFiles(Pin.java:17)
at Pin.main(Pin.java:23)
您需要檢查File#listFiles
是否返回了有效的文件數組。 在所謂的邏輯文件的情況下可能會發生這種情況,其中文件實際上是物理文件的視圖:
File[] files = dir.listFiles();
if (files != null) {
for (File file : files) {
...
另外,您也可以處理目錄中的任何內容
public static void printFiles(String a) {
File[] files = new File(a).listFiles();
if (files != null) {
for (File file: files) {
if (file.isFile()) {
System.out.println(file);
} else if (file.isDirectory()) {
printFiles(file.toString());
}
}
}
}
您需要通過使用以下命令檢查文件或目錄是否存在
File file = new File(a);
if (file.exists()){
for(File file:dir.listFiles())
{
if(file.isFile())
{
System.out.println(file);
}
else
{
printFiles(file.toString());
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.