FTP服务 Java工具类

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPFile;

import org.apache.commons.net.ftp.FTPHTTPClient;

import org.apache.commons.net.ftp.FTPReply;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

/**

  • 提供FTP的文件上传以及下载功能

  • @author tarzan

  • @createtime 2020-6-24

*/

public class FtpUtil {

private final static Logger log = LoggerFactory.getLogger(FtpUtil.class);

/**

  • Description: 向FTP服务器上传文件

  • @param url

  •        FTP服务器hostname 
    
  • @param port

  •        FTP服务器端口 
    
  • @param username

  •        FTP登录账号 
    
  • @param password

  •        FTP登录密码 
    
  • @param path

  •        FTP服务器保存目录 
    
  • @param filename

  •        上传到FTP服务器上的文件名 
    
  • @param input

  •        输入流 
    
  • @return 成功返回true,否则返回false

*/

public static boolean uploadFile(String url, int port, String username,

String password, String path, String filename, InputStream input) {

// 初始表示上传失败

boolean success = false;

FTPClient ftp = null;

String proxySet = System.getProperty(“proxySet”);

//true表示有设置代理

// 创建FTPClient对象

if(“true”.equals(proxySet)) {

ftp = new FTPHTTPClient(System.getProperty(“http.proxyHost”), Integer.parseInt(System.getProperty(“http.proxyPort”)));

} else {

ftp = new FTPClient();

}

try {

int reply;

// 连接FTP服务器

// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

ftp.connect(url, port);

// 登录ftp

ftp.login(username, password);

// 看返回的值是不是230,如果是,表示登陆成功

reply = ftp.getReplyCode();

// 以2开头的返回值就会为真

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return success;

}

// 转到指定上传目录

ftp.changeWorkingDirectory(path);

//如果有配置代理参数时,需要设置如下模式

if(“true”.equals(proxySet)) {

ftp.enterLocalPassiveMode();

}

// 将上传文件存储到指定目录

ftp.storeFile(filename, input);

// 关闭输入流

input.close();

// 退出ftp

ftp.logout();

// 表示上传成功

success = true;

} catch (IOException e) {

// e.printStackTrace();

log.error(“in FtpUtil.uploadFile has an error,proxySet is {},and e is {}”,new Object[]{proxySet,e});

} finally {

if (ftp.isConnected()) {

try {

ftp.disconnect();

} catch (IOException ioe) {

}

}

}

return success;

}

/**

  • Description: 从FTP服务器下载文件

  • @param url

  •        FTP服务器hostname 
    
  • @param port

  •        FTP服务器端口 
    
  • @param username

  •        FTP登录账号 
    
  • @param password

  •        FTP登录密码 
    
  • @param remotePath

  •        FTP服务器上的相对路径 
    
  • @param fileName

  •        要下载的文件名 
    
  • @param localPath

  •        下载后保存到本地的路径 
    
  • @return

*/

public static boolean downFile(String url, int port, String username,

String password, String remotePath, String fileName,

String localPath) {

// 初始表示下载失败

boolean success = false;

FTPClient ftp = null;

String proxySet = System.getProperty(“proxySet”);

//true表示有设置代理

// 创建FTPClient对象

if(“true”.equals(proxySet)) {

ftp = new FTPHTTPClient(System.getProperty(“http.proxyHost”), Integer.parseInt(System.getProperty(“http.proxyPort”)));

} else {

ftp = new FTPClient();

}

try {

int reply;

// 连接FTP服务器

// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

ftp.connect(url, port);

// 登录ftp

ftp.login(username, password);

reply = ftp.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();

return success;

} // 转到指定下载目录

ftp.changeWorkingDirectory(remotePath);

//如果有配置代理参数时,需要设置如下模式

if(“true”.equals(proxySet)) {

最后

即使是面试跳槽,那也是一个学习的过程。只有全面的复习,才能让我们更好的充实自己,武装自己,为自己的面试之路不再坎坷!今天就给大家分享一个Github上全面的Java面试题大全,就是这份面试大全助我拿下大厂Offer,月薪提至30K!

我也是第一时间分享出来给大家,希望可以帮助大家都能去往自己心仪的大厂!为金三银四做准备!
一共有20个知识点专题,分别是:

Dubbo面试专题

JVM面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Java并发面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Kafka面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MongDB面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MyBatis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

MySQL面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Netty面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

RabbitMQ面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Redis面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

Spring Cloud面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

SpringBoot面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

zookeeper面试专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

常见面试算法题汇总专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

计算机网络基础专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

设计模式专题

这个GItHub上的Java项目开源了,2020最全的Java架构面试复习指南

ud面试专题**

[外链图片转存中…(img-NtRkflFr-1714292037972)]

SpringBoot面试专题

[外链图片转存中…(img-viGBTicv-1714292037973)]

zookeeper面试专题

[外链图片转存中…(img-dcslHYoA-1714292037973)]

常见面试算法题汇总专题

[外链图片转存中…(img-GQ4GA3Ko-1714292037973)]

计算机网络基础专题

[外链图片转存中…(img-Oat9aw5y-1714292037974)]

设计模式专题

[外链图片转存中…(img-ZD82tuoY-1714292037974)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值