madinggui 发表于 2013-1-15 02:34:35

ftp上传和下载

Java代码
1.package com.northking.dataManager.util;   
2.import sun.net.ftp.*;   
3.import sun.net.*;   
4.import java.io.*;   
5.
6./**
7. * 使用sun.net.ftp工具包进行ftp上传下载
8. * @author maochangming
9. * @date 2008-6-2013:09:29
10. * @description:
11. */
12.public class FtpTool {   
13.    String ip;   
14.    int port;   
15.    String user;   
16.    String pwd;   
17.    String remotePath;   
18.    String localPath;   
19.    FtpClient ftpClient;   
20.
21.    /**
22.   * 连接ftp服务器
23.   * @param ip
24.   * @param port
25.   * @param user
26.   * @param pwd
27.   * @return
28.   * @throws Exception
29.   */
30.    public boolean connectServer(String ip, int port, String user, String pwd)   
31.      throws Exception {   
32.      boolean isSuccess = false;   
33.      try {   
34.            ftpClient = new FtpClient();   
35.            ftpClient.openServer(ip, port);   
36.            ftpClient.login(user, pwd);   
37.            isSuccess = true;   
38.      } catch (Exception ex) {   
39.            throw new Exception("Connect ftp server error:" + ex.getMessage());   
40.      }   
41.      return isSuccess;   
42.    }   
43.
44.    /**
45.   * 下载文件
46.   * @param remotePath
47.   * @param localPath
48.   * @param filename
49.   * @throws Exception
50.   */
51.    public void downloadFile(String remotePath,String localPath, String filename) throws Exception {   
52.      try {   
53.            if (connectServer(getIp(), getPort(), getUser(), getPwd())) {   
54.                if (remotePath.length() != 0)   
55.                  ftpClient.cd(remotePath);   
56.                ftpClient.binary();   
57.                TelnetInputStream is = ftpClient.get(filename);   
58.                File file_out = new File(localPath + File.separator + filename);   
59.                FileOutputStream os = new FileOutputStream(file_out);   
60.                byte[] bytes = new byte;   
61.                int c;   
62.                while ((c = is.read(bytes)) != -1) {   
63.                  os.write(bytes, 0, c);   
64.                }   
65.                is.close();   
66.                os.close();   
67.                ftpClient.closeServer();   
68.            }   
69.      } catch (Exception ex) {   
70.            throw new Exception("ftp download file error:" + ex.getMessage());   
71.      }   
72.    }   
73.
74.    /**
75.   * 上传文件
76.   * @param remotePath
77.   * @param localPath
78.   * @param filename
79.   * @throws Exception
80.   */
81.    public void uploadFile(String remotePath,String localPath, String filename) throws Exception {   
82.      try {   
83.            if (connectServer(getIp(), getPort(), getUser(), getPwd())) {   
84.                if (remotePath.length() != 0)   
85.                  ftpClient.cd(remotePath);   
86.                ftpClient.binary();   
87.                TelnetOutputStream os = ftpClient.put(filename);   
88.                File file_in = new File(localPath + File.separator + filename);   
89.                FileInputStream is = new FileInputStream(file_in);   
90.                byte[] bytes = new byte;   
91.                int c;   
92.                while ((c = is.read(bytes)) != -1) {   
93.                  os.write(bytes, 0, c);   
94.                }   
95.                is.close();   
96.                os.close();   
97.                ftpClient.closeServer();   
98.            }   
99.      } catch (Exception ex) {   
100.            throw new Exception("ftp upload file error:" + ex.getMessage());   
101.      }   
102.    }   
103.
104.    /**
105.   * @return
106.   */
107.    public String getIp() {   
108.      return ip;   
109.    }   
110.
111.    /**
112.   * @return
113.   */
114.    public int getPort() {   
115.      return port;   
116.    }   
117.
118.    /**
119.   * @return
120.   */
121.    public String getPwd() {   
122.      return pwd;   
123.    }   
124.
125.    /**
126.   * @return
127.   */
128.    public String getUser() {   
129.      return user;   
130.    }   
131.
132.    /**
133.   * @param string
134.   */
135.    public void setIp(String string) {   
136.      ip = string;   
137.    }   
138.
139.    /**
140.   * @param i
141.   */
142.    public void setPort(int i) {   
143.      port = i;   
144.    }   
145.
146.    /**
147.   * @param string
148.   */
149.    public void setPwd(String string) {   
150.      pwd = string;   
151.    }   
152.
153.    /**
154.   * @param string
155.   */
156.    public void setUser(String string) {   
157.      user = string;   
158.    }   
159.
160.    /**
161.   * @return
162.   */
163.    public FtpClient getFtpClient() {   
164.      return ftpClient;   
165.    }   
166.
167.    /**
168.   * @param client
169.   */
170.    public void setFtpClient(FtpClient client) {   
171.      ftpClient = client;   
172.    }   
173.
174.    /**
175.   * @return
176.   */
177.    public String getRemotePath() {   
178.      return remotePath;   
179.    }   
180.
181.    /**
182.   * @param string
183.   */
184.    public void setRemotePath(String string) {   
185.      remotePath = string;   
186.    }   
187.
188.    /**
189.   * @return
190.   */
191.    public String getLocalPath() {   
192.      return localPath;   
193.    }   
194.
195.    /**
196.   * @param string
197.   */
198.    public void setLocalPath(String string) {   
199.      localPath = string;   
200.    }   
201.
202.}
package com.northking.dataManager.util;
import sun.net.ftp.*;
import sun.net.*;
import java.io.*;

/**
* 使用sun.net.ftp工具包进行ftp上传下载
* @author maochangming
* @date 2008-6-2013: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;
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;
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测试类

Java代码
1.package com.northking.dataManager.dataimport.parse.test;   
2.
3.import com.northking.dataManager.util.FtpTool;   
4.
5.import junit.framework.TestCase;   
6.
7./**
8. * @author maochangming
9. * @date 2008-6-2013:09:11
10. * @description:
11. */
12.public class FtpToolTest extends TestCase {   
13.    FtpTool ftpTool;   
14.
15.    /**
16.   * Constructor for FtpToolTest.
17.   * @param arg0
18.   */
19.    public FtpToolTest(String arg0) {   
20.      super(arg0);   
21.    }   
22.
23.    public static void main(String[] args) {   
24.      junit.textui.TestRunner.run(FtpToolTest.class);   
25.    }   
26.      
27.    public void testDownLoadFile()throws Exception{   
28.      ftpTool.downloadFile(ftpTool.getRemotePath(),"c:/downloads","JBFImgMng.CAB");   
29.    }   
30.
31.    /*
32.   * @see TestCase#setUp()
33.   */
34.    protected void setUp() throws Exception {   
35.      ftpTool = new FtpTool();   
36.      ftpTool.setIp("10.164.12.70");   
37.      ftpTool.setPort(2100);   
38.      ftpTool.setUser("share");   
39.      ftpTool.setPwd("share");   
40.      ftpTool.setRemotePath("/paeams");   
41.      super.setUp();   
42.    }   
43.
44.    /*
45.   * @see TestCase#tearDown()
46.   */
47.    protected void tearDown() throws Exception {   
48.      super.tearDown();   
49.    }   
50.
51.}
页: [1]
查看完整版本: ftp上传和下载