java ftp编程

来源:互联网 发布:整容锥子脸 知乎 编辑:程序博客网 时间:2024/06/03 14:42
package util;import java.io.IOException;import java.io.InputStream;import java.util.Calendar;import java.util.Date;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPReply;import org.apache.log4j.Logger;public class FTPUtil {private static Logger logger = Logger.getLogger(FTPUtil.class);public static final String ftp_Url=ConfigProperties.getPropertiesValue("ftp_Url");public static final String ftp_port=ConfigProperties.getPropertiesValue("ftp_port");public static final String ftp_path=ConfigProperties.getPropertiesValue("ftp_path");public static final String ftp_user=ConfigProperties.getPropertiesValue("ftp_user");public static final String ftp_pwd=ConfigProperties.getPropertiesValue("ftp_pwd");private static String ftpUrlXML=ConfigProperties.getValue("ftpUrlXML")+getYYYYMM()+"/";public static final String ftp_Url_sh=ConfigPropertiesSH.getPropertiesValue("ftp_Url_sh");public static final String ftp_port_sh=ConfigPropertiesSH.getPropertiesValue("ftp_port_sh");public static final String ftp_path_sh=ConfigPropertiesSH.getPropertiesValue("ftp_path_sh");public static final String ftp_user_sh=ConfigPropertiesSH.getPropertiesValue("ftp_user_sh");public static final String ftp_pwd_sh=ConfigPropertiesSH.getPropertiesValue("ftp_pwd_sh");private static String ftpUrlXML_sh=ConfigPropertiesSH.getValue("ftpUrlXML_sh")+getYYYYMM()+"/";/*** Description: 向FTP服务器上传文件*/ public static boolean uploadFile(String filename, InputStream input) {    System.out.println("FTPUtil.uploadFile()>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>");boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user, ftp_pwd);//登录         reply = ftp.getReplyCode();         if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();             return success;         }         ftp.changeWorkingDirectory(filename);         ftp.enterLocalPassiveMode();          ftp.storeFile(filename, input);         logger.info(filename+"上传至:"+ftp_Url+ftp_path);        input.close();         ftp.logout();         success = true;     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("success*****************************:"+success);    System.out.println("FTPUtil.uploadFile()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<<<<<<<");    return success; }/*** Description: 向FTP服务器上传文件(搜狐)*/ public static boolean uploadFileSH(String filename, InputStream input) {    System.out.println("FTPUtil.uploadFileSH()>>>>>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>");boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user_sh, ftp_pwd_sh);//登录         reply = ftp.getReplyCode();         if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();             return success;         }         ftp.changeWorkingDirectory(filename);        ftp.enterLocalPassiveMode();        System.out.println("changeWorkingDirectory**************************:"+filename);        ftp.storeFile(filename, input);         System.out.println(filename+"已上传到ftp上*****************************");        input.close();         ftp.logout();         success = true;     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("FTPUtil.uploadFileSH():success*****************************:"+success);    System.out.println("FTPUtil.uploadFileSH()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<<<<<<<");    return success; }/*** Description: 向FTP服务器创建文件夹(芒果)*/ public static boolean createDirectoryAndMovieTs(String directory, String ts) { System.out.println("FTPUtil.createDirectoryAndMovieTs()>>>>>>>>>>>>>>start>>>>>>>>>>>>>");    boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user, ftp_pwd);//登录         reply = ftp.getReplyCode();         if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();             return success;         }         //创建文件夹        ftp.changeWorkingDirectory("/"+ftpUrlXML);         ftp.makeDirectory(directory);        System.out.println("在目标服务器上成功建立了文件夹: /" +ftpUrlXML+ directory);                //移动ts文件        ftp.rename("/"+ftpUrlXML+ts,"/"+ftpUrlXML+directory+"/"+ts);        System.out.println("在目标服务器上移动文件"+ts+"到文件夹/" +ftpUrlXML+ directory+"下");        ftp.logout();         success = true;     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("success*****************************:"+success);System.out.println("FTPUtil.createDirectoryAndMovieTs()<<<<<<<<<<<<<<<end<<<<<<<<<<<<");    return success; }/*** Description: 向FTP服务器创建文件夹(搜狐)*/ public static boolean createDirectoryAndMovieTsSH(String directory, String ts) { System.out.println("FTPUtil.createDirectoryAndMovieTsSH()>>>>>>>>>>>>>>start>>>>>>>>>>>>>");    boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user_sh, ftp_pwd_sh);//登录         reply = ftp.getReplyCode();         if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();             return success;         }         //创建文件夹        ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);         ftp.makeDirectory(directory);        System.out.println("在目标服务器上成功建立了文件夹: /" +ftpUrlXML_sh+ directory);                //移动ts文件        ftp.rename("/"+ftpUrlXML_sh+ts,"/"+ftpUrlXML_sh+directory+"/"+ts);        System.out.println("在目标服务器上移动文件"+ts+"到文件夹/" +ftpUrlXML_sh+ directory+"下");        ftp.logout();         success = true;     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("FTPUtil.createDirectoryAndMovieTsSH():success*****************************:"+success);System.out.println("FTPUtil.createDirectoryAndMovieTsSH()<<<<<<<<<<<<<<<end<<<<<<<<<<<<");    return success; }/*** Description: 判断ftp上是否有该视频* @author xiewenchao* @return 成功返回true,否则返回false*/ public static boolean haveTs(String str_ts) {System.out.println("FTPUtil.haveTs()>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>");    boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url, Integer.valueOf(ftp_port));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user, ftp_pwd);//登录         reply = ftp.getReplyCode();         if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();             return success;         }         if (!ftp.changeWorkingDirectory("/"+ftpUrlXML)){        ftp.makeDirectory("/"+ftpUrlXML);        ftp.changeWorkingDirectory("/"+ftpUrlXML);        System.out.println("新创建的当月文件夹进入目录成功:"+"/"+ftpUrlXML);    }else{     ftp.changeWorkingDirectory("/"+ftpUrlXML);     System.out.println("直接当月文件夹,没创建进入目录成功:"+"/"+ftpUrlXML);    }        System.out.println("*************changeWorkingDirectory_mg***:/"+ftpUrlXML);        ftp.enterLocalPassiveMode();          String[] list = ftp.listNames();        System.out.println("*************list***"+list.length);        for(int i=0 ;i<list.length;i++){        if(str_ts.equals(list[i])){         success = true;         }        }        System.out.println("success*****************************:"+success);        ftp.logout();     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("FTPUtil.haveTs()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<");    return success; }/*** Description: 判断ftp上是否有该视频* @author xiewenchao* @return 成功返回true,否则返回false*/ public static boolean haveTsSH(String str_ts) {System.out.println("FTPUtil.haveTsSH()>>>>>>>>>>>>>>>start>>>>>>>>>>>>>>>>");    boolean success = false;     FTPClient ftp = new FTPClient();     try {         int reply;         ftp.connect(ftp_Url_sh, Integer.valueOf(ftp_port_sh));//连接FTP服务器         //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器         ftp.login(ftp_user_sh, ftp_pwd_sh);//登录    System.out.println("***********************ftp_user_sh="+ftp_user_sh+",ftp_pwd_sh="+ftp_pwd_sh+",ftp_Url_sh="+ftp_Url_sh+",ftp_port_sh="+ftp_port_sh);        reply = ftp.getReplyCode(); System.out.println("****************************"+reply);        if (!FTPReply.isPositiveCompletion(reply)) {             ftp.disconnect();            System.out.println("****************************"+success);            return success;         }        if (!ftp.changeWorkingDirectory("/"+ftpUrlXML_sh)){        ftp.makeDirectory("/"+ftpUrlXML_sh);        ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);        System.out.println("新创建的当月文件夹进入目录成功:"+"/"+ftpUrlXML_sh);    }else{     ftp.changeWorkingDirectory("/"+ftpUrlXML_sh);     System.out.println("直接当月文件夹,没创建进入目录成功:"+"/"+ftpUrlXML_sh);    }        System.out.println("*************changeWorkingDirectory_sh***:/"+ftpUrlXML_sh);        ftp.enterLocalPassiveMode();          String[] list = ftp.listNames();        System.out.println("*************list***"+list.length);        for(int i=0 ;i<list.length;i++){        if(str_ts.equals(list[i])){         success = true;          System.out.println("*************success***"+success);        }        }        System.out.println("FTPUtil.haveTsSH():success*****************************:"+success);        ftp.logout();     } catch (IOException e) {         e.printStackTrace();     } finally {         if (ftp.isConnected()) {             try {                 ftp.disconnect();             } catch (IOException ioe) {             }         }     }     System.out.println("FTPUtil.haveTsSH()<<<<<<<<<<<<<<end<<<<<<<<<<<<<<<");    return success; }/** * 获取年月: */public static String getYYYYMM(){Calendar now = Calendar.getInstance();int year = now.get(Calendar.YEAR);int month = now.get(Calendar.MONTH) + 1;String _month= "";if(month<10){_month="0"+month;}else{_month = ""+month;}return  year+_month;}/** * @param args */public static void main(String[] args) {//FTPUtil.createDirectory("SOHU201611211111");}}

读取properties.properties文件相关属性 ConfigProperties.class

package util;


import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.Properties;


public class ConfigProperties {
public static  String getValue(String key){
String value = null;
String  propertiesValue = getPropertiesValue(key);
if(propertiesValue!=null&&!"".equals(propertiesValue)){
value = propertiesValue;
}
return value;
}


public static String getPropertiesValue(String key) {
Properties props = new Properties();
try {
props.load(ConfigProperties.class.getResourceAsStream("properties.properties"));
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return props.getProperty(key);
}


}