我的要求是从不同目录获取所需文件扩展名的文件列表,在获取文件本身时,我应该获取输入流并进行一些处理....我正在尝试获取具有所需文件扩展名的文件列表,然后我正在尝试从该列表中的所有选定文件中获取输入流。对于第一次迭代,我得到了所需的文件,并且我得到了一个文件的流,但是对于下一个文件,我得到一个空指针异常。我也无法从第二次迭代中获取文件列表
我用来测试的示例代码:
System.out.println(ftp.printWorkingDirectory());
boolean status = ftp
.changeWorkingDirectory("mydirectory");
System.out.println("Status of Change Directory:" + status);
System.out.println(ftp.printWorkingDirectory());
InputStream is = null;
System.out.println(ftp.printWorkingDirectory());
System.out.println(ftp.isConnected());
FTPFile[] list2 = ftp.listFiles();
System.out.println("Number of files in this directory:"
+ list2.length);
for (int i = 0; i < list2.length; i++) {
System.out.println("-------[" + list2[i].getName()
+ "]---------------------");
is = ftp.retrieveFileStream(list2[i].getName());
int bytesRead = 0;
byte[] buffer = new byte[1024];
while ((bytesRead = is.read(buffer, 0, buffer.length)) > 0) {
System.out.println(new String(buffer, 0, bytesRead));
}
//is.close();
System.out.println("-------[END:" + list2[i].getName()
+ "]---------------------");
}
文件数显示为 3,并且“mydirectory”中的第一个文件被正确读取,但是当它尝试读取第二个文件时,它说空指针异常....另外,在我使用retrieveFileStream 方法读取流之后,如果我尝试打印当前工作目录,它给出空值但说它仍然连接....
如果我的代码中有一些错误,请告诉我......对我来说唯一的解决方法是连接到每个读取的输入流的 ftp 位置,这不是一件好事......