编写ftp客户端

本文提供两段 Java 代码示例,演示如何通过 FTP 客户端从服务器下载文件及向服务器上传文件。代码详细展示了使用标准 Java 类库进行 FTP 操作的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

标题:编写ftp客户端
作者:kagula
日期:2007-01-04

目的:
通过这里的代码,在你的应用程序中,可以同ftp服务器,上传和下载文件,无需任何修改
适应任何环境。

正文:
[1]从FTP Server取文件的源码
/**
* @param map
* 入口参数:
* ftp.adr 服务器名称
* ftp.usr 登录名
* ftp.pwd 登录密码
*
* ftp.serverpath 服务端文件存放路径(含文件名,开头不能是/符号)
* ftp.file 本地存储路径(含文件名)建议用绝对路径
*
* 如果相关key不存在,将引发NullPointer异常!
*
*/
public void ftp_getfile(Map map)
{
String adr=null;
String usr=null;
String pwd=null;
String serverpath=null;
String file=null;
try{
adr= map.get("ftp.adr").toString();
usr= map.get("ftp.usr").toString();
pwd= map.get("ftp.pwd").toString();
serverpath=map.get("ftp.serverpath").toString();
file=map.get("ftp.file").toString();
}catch(Exception e)
{
System.out.println("参数不完整"+e.toString());
return;
}
//Content
try
{
//new URL("ftp://username:password@ftp.whatever.com/file.zip;type=i");
URL url = new URL("ftp://"+usr+":"+pwd+"@"+adr+"/"+serverpath+";type=i");
URLConnection con = url.openConnection();
BufferedInputStream in = new BufferedInputStream(con.getInputStream());
FileOutputStream out = new FileOutputStream(file);

int i = 0;
byte[] bytesIn = new byte[1024];
while ((i = in.read(bytesIn)) >= 0) {
out.write(bytesIn, 0, i);
}
out.close();
in.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
[2]向FTP Client上传文件的源码

/**
* @param map
* 入口参数:
* ftp.adr 服务器名称
* ftp.usr 登录名
* ftp.pwd 登录密码
*
* ftp.serverpath 上传路径(服务端存放路径)
* ftp.file 上传文件(含本地路径)
*
* 如果相关key不存在,将引发NullPointer异常!
*
* 注意:[1] serverpath中所指路径不存在,不会自动建立路径,会返回出错信息。
* [2] server上同名文件存在,新上传文件,会覆盖原文件。
*/
public void ftp_putfile(Map map)
{
String adr=null;
String usr=null;
String pwd=null;
String serverpath=null;
String file=null;
try{
adr= map.get("ftp.adr").toString();
usr= map.get("ftp.usr").toString();
pwd= map.get("ftp.pwd").toString();
serverpath=map.get("ftp.serverpath").toString();
file=map.get("ftp.file").toString();
}catch(Exception e)
{
System.out.println("参数不完整"+e.toString());
return;
}

//Content
JakartaFtpWrapper ftp = new JakartaFtpWrapper();
try {
if (ftp.connectAndLogin(adr, usr, pwd)) {
//登录成功
ftp.setPassiveMode(true);
ftp.binary();
String s=serverpath+getFileName(file);
if(!ftp.uploadFile(file, s))
{
System.out.println("上传文件[to server store location]["+s+"]失败!");
}
}
}catch(Exception e)
{
e.printStackTrace();
}
finally{
try{
ftp.logout();
ftp.disconnect();
}catch(Exception e)
{
e.printStackTrace();
}
}
}

参考网站:
[1]Java FTP Tips
http://www.nsftools.com/tips/JavaFtp.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值