java操作ftp_java操作ftp下载文件示例

/**

*

* JAVA操作 FTP 下载

* 文件下载。

*

*/

private void ftpDownload()

{

FTPClient ftpClient = null;

InputStream input = null;

boolean loginFlag = false;

List<String> list = new ArrayList<String>();

try

{

int defaultPort = CommonsMessage.FTP_DEFAULT_PORT; // 21

int timeout = M400Constant.NUM_SIXTY_THOUSAND * M400Constant.NUM_TWO; // 120000

ftpClient = new FTPClient();

ftpClient.setDefaultPort(defaultPort);

ftpClient.setConnectTimeout(timeout);

//            ftpClient.setSoTimeout(timeout);

ftpClient.setDefaultTimeout(timeout);

ftpClient.setDataTimeout(timeout);

ftpClient.setControlEncoding("UTF-8");

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);

conf.setServerLanguageCode("en");

conf.setDefaultDateFormatStr("MMM dd HH:mm");

ftpClient.configure(conf);

ftpClient.connect(SystemConfig.getKey("scpFtpIp"));

loginFlag = ftpClient.login(SystemConfig.getKey("scpFtpUserName").trim(),

SystemConfig.getKey("scpFtpPassword").trim());

String ftpDir = SystemConfig.getKey("ftpHangupDir").trim();

if (!loginFlag)

{

DEBUGGER.debug("login scp ftp is :" + loginFlag);

}

// String ftpDir = SystemConfig.getKey("ftpHangupDir").trim();

if (ftpClient.changeWorkingDirectory(ftpDir))

{

FTPFile file[] = ftpClient.listFiles(ftpDir);

if (file != null && file.length > 0)

{

DEBUGGER.debug("hungup file size is:  " + file.length);

for (int i = 0; i < file.length; i++)

{

String fileName = file[i].getName();

ftpClient.setBufferSize(CommonsMessage.ONE_K_BUFFER_SIZE);

// 设置文件类型(二进制)

ftpClient.setFileType(FTP.BINARY_FILE_TYPE);

input = ftpClient.retrieveFileStream(fileName);

processInput(ftpClient, input, list, fileName);

// if (downFlag) {

// ftpClient.deleteFile(fileName);

// }

}

}

else

{

try

{

Thread.sleep(M400Constant.NUM_FIVE_THOUSAND);

}

catch (InterruptedException e)

{

/*

* if (DEBUGGER.isDebugEnable()) {

* DEBUGGER.debug("Failed to queryScpToQuery", e); }

*/

error("Failed to queryScpToQuery", e);

}

}

}

else

{

DEBUGGER.debug("scp dir is error ");

}

}

catch (Exception e)

{

/*

* DEBUGGER.debug("dowonload file is faild  ", e);

*/

error("dowonload file is faild  ", e);

}

finally

{

close(input, "close inputStream  is faild  ");

if (ftpClient != null)

{

try

{

deleteFile(ftpClient, list);

boolean logoutFlag = false;

try

{

logoutFlag = ftpClient.logout();

// DEBUGGER.debug("logout : " + logoutFlag);

}

catch (Exception e)

{

/*

* DEBUGGER.debug("logout : " + logoutFlag);

*/

error("logout : " + logoutFlag, e);

}

ftpClient = null;

}

catch (Exception e)

{

/*

* if (DEBUGGER.isDebugEnable()) {

* DEBUGGER.error("Failed to ftpDownload", e); }

*/

error("Failed to ftpDownload", e);

}

// try {

// ftpClient.disconnect();

// } catch (IOException e) {

// if (DEBUGGER.isDebugEnable()) {

// DEBUGGER.debug("Failed to ftpDownload", e);

// }

// }

}

}

}

/**

* 处理ftp对应文件输入流。

*

* @param ftpClient

*            ftp客户端对象

* @param input

*            ftp文件输入流

* @param list

*            处理完毕的文件列表,用于执行文件删除使用

* @param fileName

*            当前处理的文件名称

*/

private void processInput(FTPClient ftpClient, InputStream input, List<String> list, String fileName)

{

if (input == null)

{

return;

}

// boolean downFlag = callingService(input);

callingService(input);

try

{

input.close();

ftpClient.completePendingCommand();

list.add(fileName);

}

catch (Exception e)

{

/*

* DEBUGGER.debug("Failed to ftpDownload", e);

*/

error("Failed to ftpDownload", e);

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值