2015-01-15 3 views
0

내 프로그램에 매일 코드를 실행하는 스케줄러가 있기 때문에 System.exit (0)을 피하려고합니다.FTP 연결을 닫는 가장 좋은 방법은 무엇입니까?

FTPClient client = new FTPClient(); 
FileInputStream fis = null; 
try { 
     System.out.println("Establishing connection..."); 
     client.connect(ftpHost, ftpPort); 
     System.out.print(client.getReplyString()); 
     System.out.println("Connection ok."); 
     if (client.login(ftpUser, ftpPass)) { 
      System.out.println("Login ok"); 
      System.out.print(client.getReplyString()); 
      System.out.println("Setting PASV"); 
      client.enterLocalPassiveMode(); 
      System.out.print(client.getReplyString()); 
     } else { 
      System.out.println("Login error!"); 
      System.out.print(client.getReplyString()); 
     } 
     if (client.changeWorkingDirectory("/path/mydir")) { 
      System.out.println("Dir changed"); 
      System.out.print(client.getReplyString()); 
     } else { 
      System.out.println("Error changing dir"); 
      System.out.print(client.getReplyString()); 
     } 
     //Upload 
     fis = new FileInputStream("README.txt"); 
     if(client.storeFile("README.txt", fis)) 
     { 
      System.out.println("File sent"); 
      System.out.print(client.getReplyString()); 
     } 
     else 
     { 
      System.out.println("Error during sending file"); 
      System.out.print(client.getReplyString()); 
     } 

     if (client.logout()) { 
      System.out.println("Logout closed successfully"); 
      System.out.print(client.getReplyString()); 
     } else { 
      System.out.println("Logout problem"); 
      System.out.print(client.getReplyString()); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

무엇이 잘못되었을 때 사용해야합니까? 로그 아웃 하시겠습니까? 연결을 끊으시겠습니까? 아니면 다른 것들?

답변

0

client.disconnect(); 충분할 것입니다 :

finally { 
    if (client.isConnected()) { 
     try { 
      client.disconnect(); 
     } catch (IOException ioe) { 
      // do nothing 
     } 
    } 
} 

official example을 참조하십시오.

관련 문제