java 使用ftp_Java调用FTP实例

该博客展示了如何使用Apache Commons Net库在Java中实现FTP客户端,进行文件上传和下载操作。代码详细演示了连接FTP服务器、设置二进制传输模式、切换目录、列举目录文件以及读写文件的过程。

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

1 packagecom.test;2

3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7 importjava.io.InputStream;8 importjava.io.OutputStream;9 importjava.net.SocketException;10 importjava.net.UnknownHostException;11

12 importorg.apache.commons.net.ftp.FTP;13 importorg.apache.commons.net.ftp.FTPClient;14 importorg.apache.commons.net.ftp.FTPFile;15

16 public classFtpClientTest {17

18 /**

19 *@paramargs20 *@throwsSocketException21 *@throwsIOException22 *@throwsUnknownHostException23 */

24 public static void main(String[] args) throwsSocketException, IOException{25 //TODO Auto-generated method stub

26 String host = "192.168.0.107";27 String user = "ftpClient";28 String pass = "ftp123";29 up(host, 21, user, pass) ;30 }31 static void load(String host ,intport ,String user ,String pass){32 FTPClient client = newFTPClient() ;33 try{34 client.connect(host,port) ;35 boolean flag =client.login(user, pass) ;36 if(flag){37 /**

38 * ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,39 * 如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。40 * 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件,这回导致文件损坏41 */

42 //设置采用二进制传输方式下载,若采用默认的ascii传输方式下载可能导致文件损失

43 client.setFileType(FTP.BINARY_FILE_TYPE);44 //切换当前目录到xx

45 client.changeWorkingDirectory("/20170806") ;46 FTPFile[] ftpFiles =client.listFiles() ;47 OutputStream out = null;48 int i = 1;49 for(FTPFile f:ftpFiles){50 File file = new File("G:/ftp/") ;51 if(!file.exists())52 file.mkdirs() ;53 file = new File(file, new String(f.getName().getBytes("iso-8859-1"),"GBK")) ;54 out = newFileOutputStream(file) ;55 client.retrieveFile(f.getName(), out) ;56 out.close() ;57 i++;58 }59 }60 } catch(SocketException e) {61 //TODO Auto-generated catch block

62 e.printStackTrace();63 } catch(IOException e) {64 //TODO Auto-generated catch block

65 e.printStackTrace();66 }67 }68 static void up(String host ,intport ,String user ,String pass){69 FTPClient client = newFTPClient() ;70 try{71 client.connect(host,port) ;72 boolean flag =client.login(user, pass) ;73 if(flag){74 client.setFileType(FTP.BINARY_FILE_TYPE);75 //切换工作目录

76 client.changeWorkingDirectory("/20170806") ;77 InputStream in = new FileInputStream("E:/周报/个人周报.xlsx") ;78 client.storeFile("1234.xlsx", in) ;79 }80 } catch(SocketException e) {81 //TODO Auto-generated catch block

82 e.printStackTrace();83 } catch(IOException e) {84 //TODO Auto-generated catch block

85 e.printStackTrace();86 }87 }88 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值