java 使用apache的net包ftp上传文件详解编程语言
2023-06-13 09:20:29 时间
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;
public class JFtpApche
privatestatic FTPClient ftpClient = new FTPClient();
privatestatic String encoding = System.getProperty("file.encoding");
publicstatic boolean uploadFile(String url, int port, String username,String password, String path, String filename, InputStream input)
boolean result = false;
try
int reply;
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftpClient.connect(url);
// ftp.connect(url, port);// 连接FTP服务器
// 登录
ftpClient.login(username, password);
ftpClient.setControlEncoding(encoding);
// 检验是否连接成功
reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
System.out.println("连接失败");
ftpClient.disconnect();
return result;
// 转移工作目录至指定目录下
boolean change = ftpClient.changeWorkingDirectory(path);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
if (change)
result = ftpClient.storeFile(newString(filename.getBytes(encoding), "iso-8859-1"), input);
if (result)
System.out.println("上传成功!");
input.close();
ftpClient.logout();
} catch (IOException e)
e.printStackTrace();
} finally
if (ftpClient.isConnected())
try
ftpClient.disconnect();
} catch (IOException ioe)
return result;
public voidtestUpLoadFromDisk()
try
FileInputStream in = new FileInputStream(newFile("./data/se/1-2015-02-03-14.list"));
//boolean flag = uploadFile("127.0.0.1", 21, "zlb", "123", "/","哈哈.txt", in);
boolean flag = uploadFile("10.10.2.55", 21, "anonymous", "", "/","1-2015-02-03-14.list", in);
System.out.println(flag);
} catch (FileNotFoundException e)
e.printStackTrace();
publicstatic boolean downFile(String url, int port, String username,String password, String remotePath, String fileName, StringlocalPath)
boolean result = false;
try
int reply;
ftpClient.setControlEncoding(encoding);
// FTPClientConfig conf = new
// FTPClientConfig(FTPClientConfig.SYST_NT);
// conf.setServerLanguageCode("zh");
ftpClient.connect(url, port);
// 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftpClient.login(username, password);// 登录
// 设置文件传输类型为二进制
ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);
// 获取ftp登录应答代码
reply = ftpClient.getReplyCode();
// 验证是否登陆成功
if (!FTPReply.isPositiveCompletion(reply))
ftpClient.disconnect();
System.err.println("FTP server refused connection.");
return result;
// 转移到FTP服务器目录至指定的目录下
ftpClient.changeWorkingDirectory(newString(remotePath.getBytes(encoding), "iso-8859-1"));
// 获取文件列表
FTPFile[] fs = ftpClient.listFiles();
for (FTPFile ff : fs)
if (ff.getName().equals(fileName))
File localFile = new File(localPath + "/" + ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftpClient.retrieveFile(ff.getName(), is);
is.close();
ftpClient.logout();
result = true;
} catch (IOException e)
e.printStackTrace();
} finally
if (ftpClient.isConnected())
try
ftpClient.disconnect();
} catch (IOException ioe)
return result;
public voidtestDownFile()
try
boolean flag = downFile("127.0.0.1", 21, "zlb", "123", "/","contact.txt", "D:/");
System.out.println(flag);
} catch (Exception e)
e.printStackTrace();
publicstatic void main(String[] args)
JFtpApche fa = new JFtpApche();
//fa.testDownFile();
fa.testUpLoadFromDisk();
}
原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/10445.html
cgojava相关文章
- JSON数组转Java List
- java vo 什么意思_在Java中VO , PO , BO , QO, DAO ,POJO是什么意思
- java发送邮件代码[通俗易懂]
- java 音频转为wav格式标准音频 | Java工具类
- Contest1620 – 2020-2021-2学期《Java Web 系统开发》:java基础:字符串
- Java进阶:java开源商城系统源码
- java框架漏洞_Spring 框架漏洞集合「建议收藏」
- java和python哪个值得学-学java好还是Python好?
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java applet介绍,Java Applet教程介绍[通俗易懂]
- java一个字符几个字节_Java 语言中一个字符占几个字节?
- java获取服务器路径_JAVA获取服务器路径的方法「建议收藏」
- java xml与实体类转换「建议收藏」
- java softreference_Java引用总结–StrongReference、SoftReference、WeakReference、PhantomReference…[通俗易懂]
- Apache knox_apache发生服务特定错误1
- java的异或_java中的异或
- 【源码阅读计划】浅析 Java 线程池工作原理及核心源码
- Java延迟加载的最佳实践应用示例!
- java如何使用AES加密详解编程语言
- php转java 系列2 Spring boo 链接数据库jdbc详解编程语言
- 技术的融合突破极限:Java与Redis的技术融合(java与redis)
- 处理解决Java中Redis过期数据处理问题(redisjava过期)
- 缓存实现Redis Java:实现过期缓存(redisjava过期)
- Java开发者如何快速掌握Neo4j(java操作neo4j)
- Apache安装MySQL数据库的指南(apache装mysql)
- Java编程从Oracle中读取数据(java读取oracle)
- 通往成功的道路通过Java考证Oracle获取更高的成就(java考证oracle)