- package com.northking.dataManager.util;
- import sun.net.ftp.*;
- import sun.net.*;
- import java.io.*;
- /**
- * 使用sun.net.ftp工具包进行ftp上传下载
- * @author maochangming
- * @date 2008-6-20 13:09:29
- * @description:
- */
- public class FtpTool {
- String ip;
- int port;
- String user;
- String pwd;
- String remotePath;
- String localPath;
- FtpClient ftpClient;
- /**
- * 连接ftp服务器
- * @param ip
- * @param port
- * @param user
- * @param pwd
- * @return
- * @throws Exception
- */
- public boolean connectServer(String ip, int port, String user, String pwd)
- throws Exception {
- boolean isSuccess = false;
- try {
- ftpClient = new FtpClient();
- ftpClient.openServer(ip, port);
- ftpClient.login(user, pwd);
- isSuccess = true;
- } catch (Exception ex) {
- throw new Exception("Connect ftp server error:" + ex.getMessage());
- }
- return isSuccess;
- }
- /**
- * 下载文件
- * @param remotePath
- * @param localPath
- * @param filename
- * @throws Exception
- */
- public void downloadFile(String remotePath,String localPath, String filename) throws Exception {
- try {
- if (connectServer(getIp(), getPort(), getUser(), getPwd())) {
- if (remotePath.length() != 0)
- ftpClient.cd(remotePath);
- ftpClient.binary();
- TelnetInputStream is = ftpClient.get(filename);
- File file_out = new File(localPath + File.separator + filename);
- FileOutputStream os = new FileOutputStream(file_out);
- byte[] bytes = new byte[1024];
- int c;
- while ((c = is.read(bytes)) != -1) {
- os.write(bytes, 0, c);
- }
- is.close();
- os.close();
- ftpClient.closeServer();
- }
- } catch (Exception ex) {
- throw new Exception("ftp download file error:" + ex.getMessage());
- }
- }
- /**
- * 上传文件
- * @param remotePath
- * @param localPath
- * @param filename
- * @throws Exception
- */
- public void uploadFile(String remotePath,String localPath, String filename) throws Exception {
- try {
- if (connectServer(getIp(), getPort(), getUser(), getPwd())) {
- if (remotePath.length() != 0)
- ftpClient.cd(remotePath);
- ftpClient.binary();
- TelnetOutputStream os = ftpClient.put(filename);
- File file_in = new File(localPath + File.separator + filename);
- FileInputStream is = new FileInputStream(file_in);
- byte[] bytes = new byte[1024];
- int c;
- while ((c = is.read(bytes)) != -1) {
- os.write(bytes, 0, c);
- }
- is.close();
- os.close();
- ftpClient.closeServer();
- }
- } catch (Exception ex) {
- throw new Exception("ftp upload file error:" + ex.getMessage());
- }
- }
- /**
- * @return
- */
- public String getIp() {
- return ip;
- }
- /**
- * @return
- */
- public int getPort() {
- return port;
- }
- /**
- * @return
- */
- public String getPwd() {
- return pwd;
- }
- /**
- * @return
- */
- public String getUser() {
- return user;
- }
- /**
- * @param string
- */
- public void setIp(String string) {
- ip = string;
- }
- /**
- * @param i
- */
- public void setPort(int i) {
- port = i;
- }
- /**
- * @param string
- */
- public void setPwd(String string) {
- pwd = string;
- }
- /**
- * @param string
- */
- public void setUser(String string) {
- user = string;
- }
- /**
- * @return
- */
- public FtpClient getFtpClient() {
- return ftpClient;
- }
- /**
- * @param client
- */
- public void setFtpClient(FtpClient client) {
- ftpClient = client;
- }
- /**
- * @return
- */
- public String getRemotePath() {
- return remotePath;
- }
- /**
- * @param string
- */
- public void setRemotePath(String string) {
- remotePath = string;
- }
- /**
- * @return
- */
- public String getLocalPath() {
- return localPath;
- }
- /**
- * @param string
- */
- public void setLocalPath(String string) {
- localPath = string;
- }
- }
package com.northking.dataManager.util;import sun.net.ftp.*;import sun.net.*;import java.io.*;/** * 使用sun.net.ftp工具包进行ftp上传下载 * @author maochangming * @date 2008-6-20 13:09:29 * @description: */public class FtpTool {String ip;int port;String user;String pwd;String remotePath;String localPath;FtpClient ftpClient;/** * 连接ftp服务器 * @param ip * @param port * @param user * @param pwd * @return * @throws Exception */public boolean connectServer(String ip, int port, String user, String pwd)throws Exception {boolean isSuccess = false;try {ftpClient = new FtpClient();ftpClient.openServer(ip, port);ftpClient.login(user, pwd);isSuccess = true;} catch (Exception ex) {throw new Exception("Connect ftp server error:" + ex.getMessage());}return isSuccess;}/** * 下载文件 * @param remotePath * @param localPath * @param filename * @throws Exception */public void downloadFile(String remotePath,String localPath, String filename) throws Exception {try {if (connectServer(getIp(), getPort(), getUser(), getPwd())) {if (remotePath.length() != 0)ftpClient.cd(remotePath);ftpClient.binary();TelnetInputStream is = ftpClient.get(filename);File file_out = new File(localPath + File.separator + filename);FileOutputStream os = new FileOutputStream(file_out);byte[] bytes = new byte[1024];int c;while ((c = is.read(bytes)) != -1) {os.write(bytes, 0, c);}is.close();os.close();ftpClient.closeServer();}} catch (Exception ex) {throw new Exception("ftp download file error:" + ex.getMessage());}}/** * 上传文件 * @param remotePath * @param localPath * @param filename * @throws Exception */public void uploadFile(String remotePath,String localPath, String filename) throws Exception {try {if (connectServer(getIp(), getPort(), getUser(), getPwd())) {if (remotePath.length() != 0)ftpClient.cd(remotePath);ftpClient.binary();TelnetOutputStream os = ftpClient.put(filename);File file_in = new File(localPath + File.separator + filename);FileInputStream is = new FileInputStream(file_in);byte[] bytes = new byte[1024];int c;while ((c = is.read(bytes)) != -1) {os.write(bytes, 0, c);}is.close();os.close();ftpClient.closeServer();}} catch (Exception ex) {throw new Exception("ftp upload file error:" + ex.getMessage());}}/** * @return */public String getIp() {return ip;}/** * @return */public int getPort() {return port;}/** * @return */public String getPwd() {return pwd;}/** * @return */public String getUser() {return user;}/** * @param string */public void setIp(String string) {ip = string;}/** * @param i */public void setPort(int i) {port = i;}/** * @param string */public void setPwd(String string) {pwd = string;}/** * @param string */public void setUser(String string) {user = string;}/** * @return */public FtpClient getFtpClient() {return ftpClient;}/** * @param client */public void setFtpClient(FtpClient client) {ftpClient = client;}/** * @return */public String getRemotePath() {return remotePath;}/** * @param string */public void setRemotePath(String string) {remotePath = string;}/** * @return */public String getLocalPath() {return localPath;}/** * @param string */public void setLocalPath(String string) {localPath = string;}}
Junit测试类
- package com.northking.dataManager.dataimport.parse.test;
- import com.northking.dataManager.util.FtpTool;
- import junit.framework.TestCase;
- /**
- * @author maochangming
- * @date 2008-6-20 13:09:11
- * @description:
- */
- public class FtpToolTest extends TestCase {
- FtpTool ftpTool;
- /**
- * Constructor for FtpToolTest.
- * @param arg0
- */
- public FtpToolTest(String arg0) {
- super(arg0);
- }
- public static void main(String[] args) {
- junit.textui.TestRunner.run(FtpToolTest.class);
- }
- public void testDownLoadFile()throws Exception{
- ftpTool.downloadFile(ftpTool.getRemotePath(),"c:/downloads","JBFImgMng.CAB");
- }
- /*
- * @see TestCase#setUp()
- */
- protected void setUp() throws Exception {
- ftpTool = new FtpTool();
- ftpTool.setIp("10.164.12.70");
- ftpTool.setPort(2100);
- ftpTool.setUser("share");
- ftpTool.setPwd("share");
- ftpTool.setRemotePath("/paeams");
- super.setUp();
- }
- /*
- * @see TestCase#tearDown()
- */
- protected void tearDown() throws Exception {
- super.tearDown();
- }
- }