2015-01-15 5 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.

Смежные вопросы