2017-10-31 7 views
0

Ich lese den Inhalt aus einer Datei auf einem Server mit dem FTPClient von Apache Commons Net. Es funktioniert gut, wenn nur einmal gelesen wird. Aber wenn ich versuche, eine zweite Datei zu lesen, gibt der InputStream meines FTPClient null zurück. Das ist mein Code:So schließen Sie FTPClient FileStream richtig

  FTPClient ftpClient = new FTPClient(); 
      ftpClient.connect("myhostname"); 
      ftpClient.login("myusername", "mypassword"); 

      // read InputStream from file 
      InputStream inputStream = ftpClient.retrieveFileStream("/my/firstfile.txt"); 
      BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

      // read every line... 

      // close everything 
      inputStream.close(); 
      bufferedReader.close(); 


      // second try 
      inputStream = ftpClient.retrieveFileStream("/my/secondfile.txt"); 
      bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 

      // ... 
      inputStream.close(); 
      bufferedReader.close(); 

Was mache ich falsch?

Antwort

1

Nach dem InputStream Schließen Sie wie folgt vor:

ftpClient.completePendingCommand(); 

Sie weitere Informationen in der javadoc of FTPClient#retrieveFileStream finden:

die Dateiübertragung beenden Sie completePendingCommand anrufen müssen und überprüfen Sie die Rückgabewert Erfolg verifizieren Wenn dies nicht geschieht, können sich nachfolgende Befehle unerwartet verhalten.

Verwandte Themen