InputStreamReader выбрасывает NPE следующим образом, когда я выполняю этот код на второй итерации цикла for. Код отлично работает для первой итерации и возвращает следующую NPE на второй итерации. Я использую фрагмент кода для чтения содержимого определенного файла из местоположения FTP и его отображения. Обратите внимание на все строки до тех пор, пока новый InputStreamReader не будет работать даже на второй итерации. Любые идеи почему?InputStreamReader бросает NPE на вторую итерацию цикла for
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at com.test.txtweb.server.task.CallBackRetryTask.main(CallBackRetryTask.java:229)
Вот исходный код:
public static void main(String[] args){
String strDate = "20130805";
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(host);
String pathToFiles = "/path/to/File";
String ftpFileName = "";
List<String> ftpFileNames = null;
InputStream iStream;
if(ftpClient.login(username, password)){
ftpClient.enterLocalPassiveMode();
FTPFile[] ftpFiles = ftpClient.listFiles();
ftpFileNames = new ArrayList<String>();
for (FTPFile ftpFile : ftpFiles) {
ftpFileName = ftpFile.getName();
if(ftpFileName.contains(strDate)){
iStream = ftpClient.retrieveFileStream(pathToFiles + ftpFileName);
System.out.println(ftpClient.getReplyString());
InputStreamReader isr = new InputStreamReader(iStream); //Error on this line on second iteration
BufferedReader br = new BufferedReader(isr);
String line = "";
while ((line = br.readLine()) != null) {
System.out.println(line);
}
}
}
}