设为首页 收藏本站
查看: 617|回复: 0

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

[复制链接]

尚未签到

发表于 2015-5-27 09:58:09 | 显示全部楼层 |阅读模式
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-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测试类






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-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();   
  •     }   
  •   
  • }  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-71129-1-1.html 上篇帖子: 使用VBS自动删除已经从FTP下载下来的文件 下篇帖子: SERV-U使用局域网中共享文件夹作FTP文件服务(部分解决,还存在问题待解决)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表