首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

用com.oroinc.net.ftp向FTP服务器下传/上载文件

2012-11-18 
用com.oroinc.net.ftp向FTP服务器上传/下载文件近来项目中要用java实现ftp客户端向FTP服务器上传和下载文

用com.oroinc.net.ftp向FTP服务器上传/下载文件
近来项目中要用java实现ftp客户端向FTP服务器上传和下载文件,总结了一个小例子,希望对大家有所帮助,同时希望大家批评指正。
1:AnalysisTools(用来解析Properties文件)
源码如下:

package org.coolyongzi;import java.io.FileInputStream;import java.io.IOException;import java.util.Properties;public class AnalysisTools {private static Properties properties = new Properties();public void AnalysisProperty(String fileName) throws IOException{FileInputStream fileInputStream = new FileInputStream(fileName);properties.load(fileInputStream);}public String getProperty(String key){return properties.get(key).toString();}}

2:FtpConfig(用来封装上传和下载的相关信息)
源码如下:
package org.coolyongzi;public class FtpConfig {private String ftpServer;private String ftpUserName;private String ftpPwd;private String ftpDownDir;private String ftpDownLoadFileName;private String ftpUploadFilePath;private int dataTimeout;public int getDataTimeout() {return dataTimeout;}public void setDataTimeout(int dataTimeout) {this.dataTimeout = dataTimeout;}public String getFtpServer() {return ftpServer;}public void setFtpServer(String ftpServer) {this.ftpServer = ftpServer;}public String getFtpUserName() {return ftpUserName;}public void setFtpUserName(String ftpUserName) {this.ftpUserName = ftpUserName;}public String getFtpPwd() {return ftpPwd;}public void setFtpPwd(String ftpPwd) {this.ftpPwd = ftpPwd;}public String getFtpDownDir() {return ftpDownDir;}public void setFtpDownDir(String ftpDownDir) {this.ftpDownDir = ftpDownDir;}public String getFtpDownLoadFileName() {return ftpDownLoadFileName;}public void setFtpDownLoadFileName(String ftpDownLoadFileName) {this.ftpDownLoadFileName = ftpDownLoadFileName;}public String getFtpUploadFilePath() {return ftpUploadFilePath;}public void setFtpUploadFilePath(String ftpUploadFilePath) {this.ftpUploadFilePath = ftpUploadFilePath;}}

3:FtpClient(上传和下载的实现类)
源码如下:
package org.coolyongzi;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.net.SocketException;import org.apache.log4j.LogManager;import org.apache.log4j.Logger;import com.oroinc.net.ftp.FTPClient;public class FtpClient {private FtpConfig ftpConfig;private FTPClient client;private AnalysisTools analysisTools;public static final Logger logger = LogManager.getLogger(FtpClient.class);public FtpClient() throws IOException{ftpConfig = new FtpConfig();this.initFtpConfit(ftpConfig);client = new FTPClient();}private void initFtpConfit(FtpConfig ftpConfig) throws IOException{analysisTools = new AnalysisTools();analysisTools.AnalysisProperty("F:/WorkSpace/MyTest/src/properties");ftpConfig.setFtpServer(analysisTools.getProperty("ftpServer"));ftpConfig.setFtpUserName(analysisTools.getProperty("ftpUserName"));ftpConfig.setFtpPwd(analysisTools.getProperty("ftpUserPwd"));ftpConfig.setFtpDownDir(analysisTools.getProperty("ftpDownDir"));ftpConfig.setFtpDownLoadFileName(analysisTools.getProperty("ftpDownLoadFileNames"));ftpConfig.setFtpUploadFilePath(analysisTools.getProperty("ftpDownLoadFileName"));}/* * @description:Downloaded from the file server documents * @return void */public void downLoadFileThroughFtpClient() throws IOException{connectFtp();//Get the file listString[] fileNames = client.listNames();File downDir = new File(ftpConfig.getFtpDownDir());String[] downFileNames = StringTools.SegmentateCharacters(ftpConfig.getFtpDownLoadFileName(), ",");File tempFile = null;FileOutputStream fileOutputStream = null;logger.debug(analysisTools.getProperty("getFileFromFtpServerStart"));for (int i = 0; i < fileNames.length; i++) {for (int j = 0; j < downFileNames.length; j++) {if((downFileNames[j].trim()).equalsIgnoreCase(fileNames[i].trim())){tempFile = new File(downDir.getAbsolutePath()+File.separator+downFileNames[j]);fileOutputStream = new FileOutputStream(tempFile);client.retrieveFile(fileNames[i], fileOutputStream);fileOutputStream.close();}}}logger.debug(analysisTools.getProperty("getFileFromFtpServerEnd"));//Sign launchedclient.logout();//Disconnectclient.disconnect();}/* * @description:Upload files to the file server * @return void */public void upLoadFileThroughFtpClient() throws IOException{connectFtp();String[] upLoadFilePathArray = StringTools.SegmentateCharacters(ftpConfig.getFtpUploadFilePath(),",");File tempFile = null;logger.debug(analysisTools.getProperty("uploadFileStart"));for (int i = 0; i < upLoadFilePathArray.length; i++) {tempFile = new File(upLoadFilePathArray[i]);client.storeFile(tempFile.getName(),new FileInputStream(tempFile));}logger.debug(analysisTools.getProperty("uploadFileEnd"));//Sign launchedclient.logout();//Disconnectclient.disconnect();}private void connectFtp() throws IOException{//Connect FtpServertry {client.connect(ftpConfig.getFtpServer());} catch (SocketException e) {// TODO Auto-generated catch blocklogger.debug(analysisTools.getProperty("ftpconnectError"));logger.debug(e.getMessage());e.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocklogger.debug(e.getMessage());e.printStackTrace();}//Login FtpServertry {client.login(ftpConfig.getFtpUserName(),ftpConfig.getFtpPwd());} catch (IOException e) {// TODO Auto-generated catch blocklogger.debug(analysisTools.getProperty("ftploginError"));logger.debug(e.getMessage());e.printStackTrace();}//Document in whatever form transmissionclient.setFileType(FTPClient.BINARY_FILE_TYPE);//Set up overtime hoursclient.setDataTimeout(ftpConfig.getDataTimeout());}}

4:StringTools(字符串工具类)
源码如下:
package org.coolyongzi;public class StringTools {public static String getShortFileNameFromFilePath(String FilePath){int position = FilePath.lastIndexOf("/");return FilePath.substring(position+1);}public static String conversionSpecialCharacters(String  convertedCharacters){return convertedCharacters.replace("/", "\");}public static String[] SegmentateCharacters(String str,String symbol){return str.split(symbol);}}

5:Junit测试类
源码如下:
package org.coolyongzi.testcase;import java.io.IOException;import java.net.SocketException;import org.coolyongzi.FtpClient;import junit.framework.TestCase;public class FtpClientTest extends TestCase {protected void setUp() throws Exception {super.setUp();}protected void tearDown() throws Exception {super.tearDown();}public void testDownLoadFileThroughFtpClient() throws SocketException, IOException {FtpClient ftpClient = new FtpClient();ftpClient.downLoadFileThroughFtpClient();}public void testupLoadFileThroughFtpClient() throws IOException{FtpClient ftpClient = new FtpClient();ftpClient.upLoadFileThroughFtpClient();}}

热点排行