2017-10-31 8 views
0

私は、Apache Commons NetのFTPClientを使ってサーバーにあるファイルから内容を読んでいます。一度読むだけでうまく動作します。しかし、私が2番目のファイルを読み込もうとしているとき、私のFTPClientのInputStreamはnullを返します。これは私のコードです:私は間違っFTPClient FileStreamを正しく閉じるには

  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(); 

何をしているのですか?

答えて

1

InputStreamを閉じた後、次の手順を実行します。

あなたはcompletePendingCommandを呼び出しにその戻り値をチェックしなければならないファイル転送を完了させるには:あなたは​​でより多くの情報を見つけることができ

ftpClient.completePendingCommand(); 

成功を確認する。これが行われないと、後続のコマンドが突然動作する可能性があります。

関連する問題