FTPClient client = new FTPClient();
client.connect("ip地址", 21);
client.login("用戶名", "密碼");
client.setSoTimeout(5000);//設置連接超時時間為5000毫秒
// 在嘗試連接以后,你應該檢查返回碼驗證是否連接成功!
int reply = client.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
client.disconnect();
System.err.println("FTP 服務器拒絕連接.");
System.exit(1);
}
System.out.println("連接正在建立中......");
if (client.isConnected()) {
System.out.println("連接已建立!");
client.setControlEncoding("gb2312");// 設置編碼方式,默認編碼方式為:ISO8859-1
client.changeWorkingDirectory("archives");// 改變當前ftp的工作目錄
// client.changeToParentDirectory();//回到上級目錄
FTPFile[] fs = client.listFiles(); // 得到當前工作目錄下的所有文件
for (FTPFile ff : fs) {
if (ff.getName().equals("test.txt")) {
File file = new File("E:\\ftpdata" + File.separator
+ "test.txt");
RandomAccessFile rfile = new RandomAccessFile(file, "rw");// 隨機訪問文件類
long offset = rfile.length();
client.setRestartOffset(offset);
rfile.seek(offset);
InputStream input = client
.retrieveFileStream("test.txt");
byte[] data = new byte[1024];
System.out.println(new Date() + " 數據寫入中...");
while (input.read(data) != -1) {
rfile.write(data);
}
System.out.println(new Date() + " 所有數據已接受完成!");
input.close();
rfile.close();
}
}
}
client.logout();
client.disconnect();