使用sun.net.ftp下载、上传文件完整版
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测试类
package com.northking.dataManager.dataimport.parse.test;import com.northking.dataManager.util.FtpTool;import junit.framework.TestCase;/** * @author maochangming * @date 2008-6-2013: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();}}
页:
[1]