[英]What's the best practice to close an ftp connection?
我想避免System.exit(0),因為在我的程序中有一個調度程序每天都會啟動這段代碼。
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();
}
出現問題時該怎么用? 登出? 斷開? 還是其他東西?
client.disconnect(); 將足夠:
finally {
if (client.isConnected()) {
try {
client.disconnect();
} catch (IOException ioe) {
// do nothing
}
}
}
參見官方示例 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.