lx86 发表于 2015-5-27 09:58:09

使用sun.net.ftp下载、上传文件完整版

http://www.javaeye.com/images/icon_copy.gif


[*]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;   
[*]    }   
[*]
[*]}

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代码 http://www.javaeye.com/images/icon_copy.gif

[*]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]
查看完整版本: 使用sun.net.ftp下载、上传文件完整版