原项目里用JDk6的sun.net.ftp.FtpClient实现FTP的上传下载,这个类在jdk的帮助文档中没有具体的说明,也就是并没有对外公开。并且这个类是在jdk的 rt.jar中实现的,jdk1.7下其构造函数FtpClient()被定义为private类型,所以无法new了。 在jdk1.7,已经换成了 FtpClient.create(ip)方法
现在公司要升级jdk版本到1.7,需要把原来的ftp功能重写,索性使用Apache 的commons-net 来实现这个功能,这样就跟jdk的版本没关系了
以下是对原来项目的FTP工具类进行更换后的代码
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.commons.net.ftp.*;
import org.apache.mina.core.RuntimeIoException;
/**
* FTP上传工具类
*
*/
public class FtpUtil {
protected final Log log = LogFactory.getLog(getClass());
private String ip = "";
private String username = "";
private String password = "";
private int port = -1;
private String path = "";
private FTPClient ftpClient = null;
//private OutputStream os = null;
//private FileInputStream is = null;
public FtpUtil(String serverIP, String username, String password) {
this.ip = serverIP;
this.username = username;
this.password = password;
}
public FtpUtil(String se