在java中使用for循环读取文件
我用一个简单的for循环遇到了这个恼人的问题。这是我的程序的模式在java中使用for循环读取文件,java,file,for-loop,Java,File,For Loop,我用一个简单的for循环遇到了这个恼人的问题。这是我的程序的模式 public static void methodA(File a, File b){ //procedure } Public static void readFiles(String a){ File folder = new File(a); File[] listOfFiles = folder.listFiles(); for (int i = 0; i < listOfFi
public static void methodA(File a, File b){
//procedure
}
Public static void readFiles(String a){
File folder = new File(a);
File[] listOfFiles = folder.listFiles();
for (int i = 0; i < listOfFiles.lenght-1; i++)
{
if (listOfFiles[i].isDirectory())
{
readFile(listOfFiles[i].getPath());
}
else
{
methodA(listOfFiles[i],listOfFiles[i+1])
}
}
}
public static void main(String[] args) throws InterruptedException {
String path = new String("Path to global folder");
readFile(path);
}
公共静态无效方法a(文件a、文件b){
//程序
}
公共静态void readFiles(字符串a){
文件夹=新文件(a);
File[]listOfFiles=folder.listFiles();
对于(int i=0;i
问题是,当我进入从版本2到版本3的第一个文件夹时,出现了此消息错误(文件数-仅文件数-等于5):
线程“main”java.lang.NullPointerException中的异常
但是如果我这样做:for(int I=3;I会发生什么?我也尝试过调试,试图了解问题,但没有成功。列表文件仅对文件夹有效。如果对文件而不是文件夹使用listFiles,它将返回
null
然后,listOfFiles.lengh
抛出一个NPE
翻转您的If案例。完整堆栈跟踪plz。还有更多的代码。没有这一点,我只能说有些东西是空的……我非常怀疑它是否适用于这种变化。实际上它是有效的,这就是我决定写这个问题的原因。对于这两个文件(3和4),使for iterate只针对一个步骤,我没有任何问题。奇怪的是,对于其他文件夹,空指针指示在不同的位置。对于这个例子,我必须这样做:For(int I=0;I
length
错了。将来,最好直接复制/粘贴代码,而不是重新键入代码。此外,发布完整的堆栈跟踪。此外,methodA调用中的括号不平衡(三个开始括号和一个结束括号)。正如kevensa5所说,复制粘贴可能是你的朋友。