Java实现Ftp上传和下载文件(依赖commons-net-3.3.jar)--FTPUtil.java
2017-10-18 19:27
721 查看
下载commons-net-3.3.jar
FTPUtil.java
import java.io.File;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.log4j.Logger;
public class FTPUtil {
private static Logger log = Logger.getLogger("FTPUtil.class");
private String host;
private int port;
private String username;
private String password;
public FTPUtil(String host, String port, String username, String password) {
this.host = host;
this.port = Integer.parseInt(port);
this.username = username;
this.password = password;
}
public File downloadFile(String remotePath, String remoteFileName, String localPath, String localFileName) {
FTPClient ftpClient = new FTPClient();
FileOutputStream outputStream = null;
File file = null;
try {
log.info(">>>>>>>>FTP-->downloadFile--登录开始>>>>>>>>>>>>>");
ftpClient.connect(host, port);
//设置ftp连接模式 被动模式
ftpClient.enterLocalPassiveMode();
boolean login = ftpClient.login(username, password);
if (login) {
log.info(">>>>>>>>FTP-->downloadFile--登录成功>>>>>>>>>>>>>");
}
else {
log.info(">>>>>>>>FTP-->downloadFile--登录失败>>>>>>>>>>>>>");
throw new RuntimeException("FTP登陆失败,请检查用户信息!");
}
boolean isDownload = false;
file = new File(localPath + localFileName);
if (file.exists()) {
file.delete();
}
file.createNewFile();
//切换文件路径
ftpClient.makeDirectory(remotePath);
ftpClient.changeWorkingDirectory(remotePath);
FTPFile[] ftpFiles = ftpClient.listFiles();
for (FTPFile ftpFile : ftpFiles) {
if (ftpFile.getName().equals(remoteFileName)) {
outputStream = new FileOutputStream(file);
isDownload = ftpClient.retrieveFile(ftpFile.getName(), outputStream);
}
}
if (isDownload) {
log.info(">>>>>>>>FTP-->downloadFile--文件下载成功!本地路径:" + file);
}
else {
throw new RuntimeException("FTP-->downloadFile--文件下载失败!请检查!");
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
outputStream.close();
ftpClient.disconnect();
}
catch (IOException e) {
e.printStackTrace();
}
}
return file;
}
public void uploadFile(String remotePath, String remoteFileName, String localPath, String localFileName) {
FTPClient ftpClient = new FTPClient();
FileInputStream inputStream = null;
log.info(">>>>>>>>FTP-->uploadFile--登录开始>>>>>>>>>>>>>");
ftpClient.enterLocalPassiveMode();//设置成被动FTP模式
try {
boolean login = ftpClient.login(username, password);
if (login) {
log.info(">>>>>>>>FTP-->uploadFile--登录成功>>>>>>>>>>>>>");
}
else {
log.info(">>>>>>>>FTP-->uploadFile--登录失败>>>>>>>>>>>>>");
throw new RuntimeException("FTP登陆失败,请检查用户信息!");
}
//切换文件路径
ftpClient.makeDirectory(remotePath);
ftpClient.changeWorkingDirectory(remotePath);
inputStream = new FileInputStream(new File(localPath + localFileName));
//可上传多文件
boolean isUpload = ftpClient.storeFile(remoteFileName, inputStream);
if (isUpload) {
log.info(">>>>>>>>FTP-->uploadFile--文件上传成功!");
} else {
log.info(">>>>>>>>FTP-->uploadFile--文件上传失败!");
throw new RuntimeException("文件上传失败!");
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
inputStream.close();
ftpClient.disconnect();
}
catch (IOException e) {
e.printStackTrace();
}
}
}
}
相关文章推荐
- 基于apache的commons-net-3.3.jar的 ftp java代码上传下载文件
- 基于 apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件
- apache 的 commons-net-3.3.jar 的 ftp java代码上传下载文件
- 利用Apache的commons-net实现FTP的文件读取、上传、下载、删除和移动功能
- Java 利用Apache Commons Net 实现 FTP文件上传下载
- Java 利用Apache Commons Net 实现 FTP文件上传下载
- 使用commons-net实现FTP文件上传与下载工具类
- Java ftp实现文件的上传和下载ftp,sftp sun.net.ftp.FtpProtocolException:Welcome message: SSH-2.0-OpenSSH_5.1
- oracle 调用Java 实现ftp文件的上传和下载 问题
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总
- Android开发 之 利用commons-net-3.0.1.jar包实现FTP上传下载功能
- JAVA中使用FTPClient实现文件上传下载
- JAVA Ftp实现文件上传于下载
- JAVA实现FTP文件上传下载文件
- Java FTP 实现跨服务器文件上传下载
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1
- JAVA中使用FTPClient实现文件上传下载
- JAVA中使用FTPClient实现文件上传下载
- Java实现对ftp的读写文件(apache.commons.net.ftp)
- java+jsp代码实现从FTP服务器上传下载文件