操作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. 网易云首席安全架构师谈安全新形势:DDOS两三天,游戏玩家数从几万降到几百

    本文由  网易云发布. 安全是一个永恒的话题,在业务不断云化.攻击越来越复杂的当下,互联网安全呈现了出什么样的严峻形势?对这些形势,网易云又是如何应对的? 网易云首席安全架构师沈明星 4月13日,网易 ...

  2. iOS App的加固保护原理

    本文由  网易云发布. 本文从攻防原理层面解析了iOS APP的安全策略.iOS以高安全性著称,但它并非金刚不坏之身.对于信息安全而言,止大风于青萍之末是上上策,杭研深入各个细节的研发工作,正是网易产 ...

  3. kubenetes--Namespace命名空间

    Namespace(命名空间)是kubernetes系统中的另一个重要的概念,通过将系统内部的对象“分配”到不同的Namespace中,形成逻辑上分组的不同项目.小组或用户组,便于不同的分组在共享使用 ...

  4. JQuery Mobile - 需要注意问题!

    一,JQuery Mobile 和 JQuery 版本对接,一定要选用和当前JQuery Mobile 对应版本的JQuery . 二,在台式机的模拟器和真机中的显示结果可能不一样.我在台式机中使用的 ...

  5. jzoj5925

    tj:這道題題解有錯 水法ac代碼如下: #include<bits/stdc++.h> using namespace std; typedef long long ll; ll t,n ...

  6. System Trace in Depth

    原理 使用 system trace 时,会记录最近 5s 的 kernel trace,然后分析下面的操作: Scheduling activity System calls Virtual mem ...

  7. pythonweb框架Flask学习笔记03-变量规则

    #-*- coding:utf-8 -*- from flask import Flask app=Flask(__name__) @app.route('/post/<int:postid&g ...

  8. linux初始

    运维 IT运维,指IT公司中,运行和维护服务器的工作 核心工作: ​ 数据不能丢失 ​ 7*24小时运行 ​ 提高用户访问效率 一句换 管服务器的 服务器 要管服务器那就得先了解服务器 服务器也称为伺 ...

  9. 【Java】java运行jar时,报 java.lang.UnsupportedClassVersionError

    问题现象: java运行jar时,报 java.lang.UnsupportedClassVersionError java  -jar  main.jar -h 192.168.221.171  - ...

  10. Java之集合(十一)IdentityHashMap

    转载请注明源出处:http://www.cnblogs.com/lighten/p/7381905.html 1.前言 查看JDK源码总是能发现一些新东西,IdentityHashMap也是Map的一 ...