내 요구 사항은 다른 디렉토리에서 필요한 파일 확장명의 파일 목록을 가져 오는 동안 파일 자체를 가져 오는 동안 입력 스트림을 가져와 일부 처리를 수행해야합니다. I 필요한 파일 확장명을 가진 파일 목록을 얻으려고하는 중, 그 목록에있는 모든 선택된 파일에서 입력 스트림을 얻으려고합니다. 첫 번째 반복에서는 필요한 파일을 가져 오는 중 하나의 파일에 대한 스트림을 받고 있지만 다음 파일의 경우 널 포인터 예외가 발생합니다. 'mydirectory'에Commons FTPClient InputStream 하나의 연결에 여러 파일에서
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으로 표시되며, 첫 번째 파일 : 나는 또한 두 번째 반복에서 내가 테스트하는 데 사용
샘플 코드 파일의 목록을 얻을 수 없습니다입니다 올바르게 읽었지만 두 번째 파일을 읽으려고하면 null 포인터 예외가 발생합니다 .... 또한 현재 작업 디렉토리를 인쇄하려고하면 retrieveFileStream 메서드를 사용하여 스트림을 읽은 후 null 값을 제공하지만 여전히 그렇다고합니다. 연결된 ....
내 코드에 버그가있는 경우 알려주십시오 .... 유일한 해결 방법은 다음과 같습니다. 모든 입력 스트림에 대해 ftp 위치에 연결하는 것은 좋은 일이 아니 었습니다. ...