这是我的代码。到目前为止,我能够获得他们想要扫描的目录以及他们想要命名输出文件的内容。目标是转到一个文件夹,并能够扫描所有这些filder子名称。然后我取名并将它们保存到文本文件中。我只获取指定文件夹的子项名称。它不应该打开其他文件夹并让孩子们。在我的方法listFilesForFolder()中,我得到一个空指针excpetion。有人可以帮我弄清楚为什么我得到nullpointer异常?我的代码对我有意义。
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.*;
public class ReadWriteMain {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Scanner reader = new Scanner(System.in);
System.out.println("Please Enter the name of the output file... ");
String name = reader.nextLine();
System.out.println("Please Enter the file path of the directory you would like to copy... ");
String list = reader.nextLine();
final File folder = new File(list);
listFilesForFolder(folder, name);
}
public static void listFilesForFolder(final File folder, String name) throws IOException {
System.out.println("C:\\tempJava\\" + name + ".out");
FileWriter fw = new FileWriter("C:\\tempJava\\" + name + ".out");
PrintWriter output = new PrintWriter(fw);
for (final File fileEntry : folder.listFiles()) {
if (fileEntry.isDirectory()) {
listFilesForFolder(fileEntry, name);
} else {
output.println(fileEntry.getName());
}
}
output.close();
fw.close();
}
}
答案 0 :(得分:0)
" 它不应该打开其他文件夹并让孩子们去。"
然后不要这样做if (fileEntry.isDirectory()) { listFilesForFolder(fileEntry, name); ...
" 在我的方法listFilesForFolder()中,我得到一个空指针激活。"
如果您尝试阅读的文件夹不存在,或者您无权阅读该文件夹,listFiles()
将返回null。得检查一下。
答案 1 :(得分:0)
我认为你的问题就在这一行(不是你的其他方法):
final File folder = new File(list);
给出你的代码和这样的目录结构:
您的输入应如下:
Please Enter the name of the output file...
output
Please Enter the file path of the directory you would like to copy...
C:\tempJava\myFolder
我想你可能刚刚进入" myFolder"而不是" C:\ tempJava \ myFolder"?