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);
}
}
}
上一篇: C++静态变量
下一篇: Android自定义星星评分控件
推荐阅读
-
java操作ftp下载文件示例
-
java操作cookie示例(删除cookie)
-
java使用ftp上传文件示例分享
-
Java操作XML文件 dom4j 篇 转 博客分类: JAVA-XML xmldom4j
-
java文件操作代码片断实例实现统计文件中字母出现的个数功能
-
张孝祥JAVA全集 Ftp下载[100%能下载]
-
Java操作文件输出为字符串以及字符串输出为文件的方法
-
Java读取并下载网络文件的方法
-
java后台利用Apache poi 生成excel文档提供前台下载示例
-
gradlew wrapper使用下载到本地的gradle.zip文件安装。 博客分类: java基础android