1、需要引入外部jar包:commons-net-2.0.jar(或者是子包commons-net-ftp-2.0.jar)

2、需下载ftp服务器

3、 本地电脑访问ftp服务器格式:ftp://用户名:密码@ftp服务器ip

4、以下用api访问

STEP1:

Java代码
/**  
 * 连接并登录FTP   
 * @param hostname:ftp地址(不带ftp://)   即ip
 * @param username:登录用户名  
 * @param password:登录密码  
 **/  
public int openFtp(String hostname, String username, String password) {   
    int result = 0;   
       
    // 第一步:实例化FTPClient   
    ftpClient = new FTPClient();   
       
    try {   
        // 第二步:连接FTP   
        ftpClient.connect(hostname);   
           
        // 第三步:登录FTP   
        ftpClient.login(username, password);   
           
    } catch (SocketException e) {   
        // 连接错误时捕捉此异常   
        result = 1;   
    } catch (IOException e) {   
        e.printStackTrace();   
    }    
       
    return result;   
}

STEP2:

Java代码
/**  
 * 下载单个文件  
 *   
 * @param remoteFile  
 *            :需要下载的文件,格式为ftp://xx.xx.xx.xx/remoteFile,如:ftp://10.10.10.10/dir1  
 *            /dir2/file.txt,则remoteFile为dir1/dir2/file.txt  
 * @param localFile:下载的文件保存到本地的文件,为完整绝对路径。  
 * @return  
 */  
public int ftpDownload(String remoteFile, String localFile) {   
    FileOutputStream fos = null;   
    InputStream is = null;   
    try {   
        // 第一步:设置基本属性   
        ftpClient.setBufferSize(1024);   
        ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);   
           
        // 第二步:获取远程文件的输入流   
        is = ftpClient.retrieveFileStream(remoteFile);   
           
        if (is == null) {   
            // 如果输入流为空,则表示要下载的远程文件不存在   
            return 0;   
        } else {   
            // 如果输入流不为空,则将远程文件的输入流写到本地   
            fos = new FileOutputStream(localFile);   
            byte[] buffer = new byte[1024];   
            int i = -1;   
            while ((i = is.read(buffer)) != -1) {   
                fos.write(buffer, 0, i);   
            }   
        }   
  
    } catch (FileNotFoundException e) {   
        e.printStackTrace();   
    } catch (IOException e) {   
        e.printStackTrace();   
    } finally {   
        // 关闭输入输出流   
        IOUtils.closeQuietly(is);   
        IOUtils.closeQuietly(fos);   
    }   
  
    return 1;   
}

STEP3:

STEP4:

Java代码
/**  
 * 退出登录ftp,并断开连接  
 */  
public void closeFtp() {   
    try {   
        if (ftpClient != null) {   
            ftpClient.logout();   
            ftpClient.disconnect();   
        }   
    } catch (IOException e) {   
        // 断开连接错误时捕捉此异常   
    }   
}

原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-190551-1.html

最新文章

  1. Hibernate中的锁机制
  2. OS命令注入中的空格
  3. Java-异常处理练习
  4. 炫酷JQUERY自定义对话框插件JDIALOG_JDIALOG弹出对话框和确认对话框插件
  5. 项目部署到Tomat报错:jar not loaded.See Servlet Spec 2.3, section 9.7.2. Offending
  6. TCP/IP详解学习笔记(15)-- TCP的流量控制和拥塞控制
  7. SQLServer调试
  8. install Nagios on Unbuntu Unix
  9. UI基础视图----UIWebView总结
  10. Zip4J最简单用法
  11. 数据库和 MySQL 简介(真的只是简介)
  12. 解决DOS批处理中一个困扰我几十个月的编码问题
  13. 机器学习:利用K-均值聚类算法对未标注数据分组——笔记
  14. Java中JSON之全
  15. dialog 关闭 清除
  16. 浏览器iscroll
  17. 【Mac】-NO.100.Mac.1.java.1.001-【Mac Install multiple JDK】-
  18. merge函数:R语言,根据相同的列或ID合并不同的文件
  19. webpack打包配置模板
  20. 每日英语:KFC's Crisis in China Tests Ingenuity of Man Who Built Brand

热门文章

  1. Android应用中MVP最佳实践
  2. 在Ubuntu上安装VmTools
  3. word2pdf
  4. java classpath import package 机制 @Java的ClassPath, Package和Jar
  5. Could not open a connection to your authentication agent
  6. Weekend counter
  7. eclipse编辑工具小结
  8. linux----设置、添加别名(alias,unalias)
  9. 【剑指offer】面试题27:二叉搜索树与双向链表
  10. discuz!NT 常用操作