2017-10-31 24 views
0

Apache Commons Net의 FTPClient가있는 서버에있는 파일에서 내용을 읽습니다. 한 번만 읽으면 잘 작동합니다. 하지만 두 번째 파일을 읽을 때 내 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를 호출하고 해당 반환 값을 확인해야합니다 파일 전송을 완료하려면 : 당신은 javadoc of FTPClient#retrieveFileStream에서 자세한 정보를 찾을 수 있습니다

ftpClient.completePendingCommand(); 

성공을 확인하십시오. 이 작업을 수행하지 않으면 후속 명령이 예기치 않게 작동 할 수 있습니다.