设为首页 加入收藏

TOP

FTPClientUtil FTP客户端工具(一)
2015-07-20 17:58:28 来源: 作者: 【 】 浏览:6
Tags:FTPClientUtil FTP 客户端 工具
package com.ctl.util;
//需要commons-net-3.0.1.jar
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.net.ftp.*;
import com.ctl.util.exception.FTPClientException;

public class FTPClientUtil {
	/** logger */
	private static ThreadLocal
  
    ftpClientThreadLocal;
	// ftp ip address
	private static String host;
	// \u7AEF\u53E3\u53F7
	private static int port;
	private static String username;
	private static String password;
	private static boolean binaryTransfer;
	private static boolean passiveMode;
	// \u7F16\u7801
	private static String encoding;
	// \u8BBE\u7F6E\u8FDE\u63A5\u8D85\u65F6\u65F6\u95F4
	private static int clientTimeout;
	// \u67E5\u8BE2\u8FDC\u7A0B\u76EE\u5F55\u6240\u6709\u7684file name
	private static List
   
     listFileNames; // private static String filePathOfFtpserver; static { ftpClientThreadLocal = new ThreadLocal
    
     (); host = ConfigUtils.getType("ftp.host"); port = Integer.parseInt(ConfigUtils.getType("ftp.port")); username = ConfigUtils.getType("ftp.username"); password = ConfigUtils.getType("ftp.password"); binaryTransfer = Boolean.parseBoolean(ConfigUtils .getType("ftp.binaryTransfer")); passiveMode = Boolean.parseBoolean(ConfigUtils .getType("ftp.passiveMode")); encoding = ConfigUtils.getType("ftp.encoding"); clientTimeout = Integer.parseInt(ConfigUtils .getType("ftp.clientTimeout")); listFileNames = new ArrayList
     
      (); } /** * @description \u83B7\u53D6FTP\u5BA2\u6237\u7AEF\u8FDE\u63A5 * @return * @throws FTPClientException * @throws SocketException * @throws IOException */ private static FTPClient getFTPClient() throws FTPClientException, SocketException, IOException { if (ftpClientThreadLocal.get() != null && ftpClientThreadLocal.get().isConnected()) { return ftpClientThreadLocal.get(); } else { FTPClient ftpClient = new FTPClient(); // \u6784\u9020\u4E00\u4E2AFtpClient\u5B9E\u4F8B ftpClient.setControlEncoding(encoding); // \u8BBE\u7F6E\u5B57\u7B26\u96C6 ftpClient.setConnectTimeout(clientTimeout); ftpClient.connect(host, port); // \u8FDE\u63A5\u540E\u68C0\u6D4B\u8FD4\u56DE\u7801\u6765\u6821\u9A8C\u8FDE\u63A5\u662F\u5426\u6210\u529F int reply = ftpClient.getReplyCode(); if (FTPReply.isPositiveCompletion(reply)) {// \u767B\u9646\u5230ftp\u670D\u52A1\u5668 ftpClient.login(username, password); setFileType(ftpClient); // \u8BBE\u7F6E\u6587\u4EF6\u4F20\u8F93\u7C7B\u578B } else { ftpClient.disconnect(); } if (passiveMode) { ftpClient.enterLocalPassiveMode(); } ftpClientThreadLocal.set(ftpClient); return ftpClient; } } /** * @description\u8BBE\u7F6E\u6587\u4EF6\u4F20\u8F93\u7C7B\u578B * @throws FTPClientException * @throws IOException */ private static void setFileType(FTPClient ftpClient) throws FTPClientException, IOException { if (binaryTransfer) { ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); } else { ftpClient.setFileType(FTPClient.ASCII_FILE_TYPE); } } /** * @description\u65AD\u5F00ftp\u8FDE\u63A5 * @throws FTPClientException * @throws IOException */ public static void disconnect() throws FTPClientException, IOException { FTPClient ftpClient = getFTPClient(); ftpClient.logout(); if (ftpClient.isConnected()) { ftpClient.disconnect(); ftpClient = null; ftpClientThreadLoca
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇HDU 1754 I Hate It (线段树) 下一篇HDU 3065 病毒侵袭持续中 AC自动..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: