操作ftp,直接在main方法中即可操作。

例1:遍历ftp目录中的文件

 public static void main(String[] args) throws IOException {

     FTPClient ftpClient = new FTPClient();

     try {

         // 连接FTP服务器
ftpClient.connect("100.100.1.100", 21);//地址,端口号 // 登录FTP服务器
ftpClient.login("admin", "admin");//用户名,密码 // 验证FTP服务器是否登录成功
ftpClient.setControlEncoding("UTF-8"); int replyCode = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("登录失败");
return;
}else{
System.out.println("登录成功");
} //根目录 登录到ftp后,所在的目录即是根目录,直接即可遍历文件
FTPFile[] files = ftpClient.listFiles();
for(FTPFile file: files){
System.out.println(file.getName());
} // 切换目录 想要遍历那个目录的文件,先要切换目录(切换目录实际就是进入目录),进到目录之后再进行遍历
if(!ftpClient.changeWorkingDirectory("/transactionDetail")){
System.out.println("切换目录失败");
return;
}else{
FTPFile[] fileDic = ftpClient.listFiles();
for(FTPFile f: fileDic){
System.out.println(f.getName());
}
} ftpClient.logout(); } catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.logout();
} catch (IOException e) { }
}
}
}

例2:读取(下载)ftp中的文件

 public static void main(String[] args) throws IOException {
FTPClient ftpClient = new FTPClient();
OutputStream out = null;
InputStream in = null;
try { // 连接FTP服务器
ftpClient.connect("100.100.1.100", 21); // 登录FTP服务器
ftpClient.login("admin", "admin"); // 验证FTP服务器是否登录成功
ftpClient.setControlEncoding("UTF-8");
int replyCode = ftpClient.getReplyCode(); if (!FTPReply.isPositiveCompletion(replyCode)) {
System.out.println("登录失败");
}else{
System.out.println("登录成功");
} // 切换目录
if(!ftpClient.changeWorkingDirectory("/book_detail")){
System.out.println("切换目录失败");
}else{
in = new FileInputStream("detail-2020-02-20-xls.zip");//读取目录中的文件
//创建本地文件
File tmpFile = new File("D:" + File.separator + "route" + File.separator + "detail-2020-02-20-xls.zip");
if (!tmpFile.getParentFile().exists()) {
tmpFile.getParentFile().mkdirs();//创建目录
}
if(!tmpFile.exists()) {
tmpFile.createNewFile();//创建文件
}
out = new FileOutputStream(tmpFile); // 创建字节数组
byte[] temp = new byte[1024];
int length = 0; // 源文件读取一部分内容
while ((length = in.read(temp)) != -1) {
// 目标文件写入一部分内容
out.write(temp, 0, length);
} in.close();
out.close(); System.out.println("写入本地成功");
} ftpClient.logout();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (ftpClient.isConnected()) {
try {
ftpClient.logout();
} catch (IOException e) { }
}
}
}

所谓的下载实质上就是输出。

遍历FTP目录及下载的更多相关文章

  1. C#遍历FTP文件夹/下载

    原文链接:http://blog.csdn.net/ou8811/article/details/5295780 整个程序大致可以分为2个部分,第一部分是实现单个文件下载的方法 [c-sharp] v ...

  2. JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)

    package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...

  3. python实现支持目录FTP上传下载文件的方法

    #!/usr/bin/env python # -*- coding: utf-8 -*- import ftplib import os import sys class FTPSync(objec ...

  4. Linux下wget下载整个FTP目录(含子目录)--转载

    wget -nH -m --ftp-user=your_username --ftp-password=your_password ftp://your_ftp_host/* 解释:-nH:不创建以主 ...

  5. vb.net FTP上传下载,目录操作

    https://blog.csdn.net/dzweather/article/details/51429107 FtpWebRequest与FtpWebResponse类用来与特定FTP服务器进行沟 ...

  6. java客户端调用ftp上传下载文件

    1:java客户端上传,下载文件. package com.li.utils; import java.io.File; import java.io.FileInputStream; import ...

  7. windows系统下ftp上传下载和一些常用命令

    先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...

  8. 用DOS批处理实现FTP自动上传、下载、清理文件

    用DOS批处理实现FTP自动上传.下载.清理文件 最近好像特别的忙,好久没来写点东西了,今天写了一个利用批处理程序完成FTP自动上传.下载.清理文件的程序.赶紧 记录下来,以备日后之用.功能介绍:自动 ...

  9. windows下ftp上传下载和一些常用命令

    先假设一个ftp地址 用户名 密码 FTP Server: home4u.at.china.com User: yepanghuang Password: abc123 打开windows的开始菜单, ...

随机推荐

  1. Day 15 内置函数 , 匿名函数.

    1. 最大值 max,最小值# #最大值 ret = max(1,2,-3)print(ret)# 结果 2ret=max([1,2,3,4])print(ret)# 结果 4 2.sum 函数用法 ...

  2. 1.python的一些规范

    Python的一些规范 1.标识符 定义:允许作为名字的有效字符串集合 名字必须有实际意义,可读性好 首字母必须是字母或下划线(_) 剩下的字符可以是字母和数字或者下划线 大小写敏感 两种风格:con ...

  3. Good Bye 2017(送命场)

    9815人数场,9500+围观神仙打架...断断续续打Codeforces也快有一年啦,第一次打Good Bye场,满怀前排膜tourist的心愿参加了这场送命场,虽然没看到tourist.不过还是得 ...

  4. MVC各部分技术体现

      视图层用jsp,javascript 作用--显示数据,接受用户输入数据 控制层用servlet 作用--接收视图层数据,传输 给业务逻辑层(即模型层) 模型层用普通java class 作用-- ...

  5. 用 TensorFlow 实现 SVM 分类问题

    这篇文章解释了底部链接的代码. 问题描述  如上图所示,有一些点位于单位正方形内,并做好了标记.要求找到一条线,作为分类的标准.这些点的数据在 inearly_separable_data.csv ...

  6. Ubuntu 连接手机 不识别设备 -- 解决办法

    1.usb线连接手机,输入命令 $ lsusb Bus 004 Device 002: ID 8087:8000 Intel Corp. Bus 004 Device 001: ID 1d6b:000 ...

  7. J05-Java IO流总结五 《 BufferedInputStream和BufferedOutputStream 》

    1. 概念简介 BufferedInputStream和BufferedOutputStream是带缓冲区的字节输入输出处理流.它们本身并不具有IO流的读取与写入功能,只是在别的流(节点流或其他处理流 ...

  8. (转)Python——functools

    原文:https://www.cnblogs.com/Security-Darren/p/4168310.html#t7 http://www.wklken.me/posts/2013/08/18/p ...

  9. (转)mysql原生在线ddl和pt-osc原理解析

    原文:http://blog.csdn.net/zengxuewen2045/article/details/52017247 https://github.com/mysql-inception/i ...

  10. C++ STL 初探

    学过C++的人肯定会很熟悉STL标准模板库,STL其实就是封装了一系列的接口,供我们调用.很多函数或者算法的实现不需要我们从头开始写,大大提高我们的编程效率.这篇博客在简单介绍STL的情况下,会详细的 ...