`

JAVA基础篇【工具类】FtpUtil TG【20130317整理】

阅读更多
Ftp工具
在我们编程的时候,我们经常会遇到链接ftp存文件和取文件的场景,下面是我为大家分享的Ftp工具类

 import java.io.File;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.io.OutputStream;  
import java.util.ArrayList;  
import java.util.List;  
  
import org.apache.commons.net.ftp.FTPClient;  
import org.apache.commons.net.ftp.FTPFile;  
import org.apache.commons.net.ftp.FTPReply;  
  
/** 
 * 用来操作ftp的综合类。<br/> 
 * 主要依赖jar包commons-net-3.1.jar。 
 *  
 * @author Elfy
 * @date 2013年02月25日 
 */  
public class FtpUtil {  
    // ftp 地址  
    private String url;  
    // ftp端口  
    private int port;  
    // 用户名  
    private String userName;  
    // 密码  
    private String password;  
  
    /** 
     * 构造函数 
     *  
     * @param url 
     *            ftp地址 
     * @param port 
     *            ftp端口 
     * @param userName 
     *            用户名 
     * @param password 
     *            密码 
     * @author Elfy
     * @date 2013年02月25日 
     * 
     */  
    public FtpUtil(String url, int port, String userName, String password) {  
        this.url = url;  
        this.port = port;  
        this.userName = userName;  
        this.password = password;  
    }  
  
    /** 
     * 从FTP服务器下载指定文件名的文件。 
     *  
     * @param remotePath 
     *            FTP服务器上的相对路径 
     * @param fileName 
     *            要下载的文件名 
     * @param localPath 
     *            下载后保存到本地的路径 
     * @return 成功下载返回true,否则返回false。 
     * @throws IOException 
     * @author Elfy
     * @date 2013年02月25日 
     */  
    public boolean downFile(String remotePath, String fileName, String localPath)  
            throws IOException {  
        boolean success = false;  
        FTPClient ftp = new FTPClient();  
        try {  
            int reply;  
            ftp.connect(url, port);  
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器  
            ftp.login(userName, password);// 登录  
            reply = ftp.getReplyCode();  
            if (!FTPReply.isPositiveCompletion(reply)) {  
                ftp.disconnect();  
                return success;  
            }  
            ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录  
            FTPFile[] fs = ftp.listFiles();  
            FTPFile ff;  
            for (int i = 0; i < fs.length; i++) {  
                ff = fs[i];  
                if (null != ff && null != ff.getName()  
                        && ff.getName().equals(fileName)) {  
                    File localFile = new File(localPath + "/" + ff.getName());  
                    OutputStream is = new FileOutputStream(localFile);  
                    ftp.retrieveFile(ff.getName(), is);  
                    is.close();  
                }  
            }  
            ftp.logout();  
            success = true;  
        } catch (IOException e) {  
            e.printStackTrace();  
            throw e;  
        } finally {  
            if (ftp.isConnected()) {  
                try {  
                    ftp.disconnect();  
                } catch (IOException ioe) {  
                }  
            }  
        }  
        return success;  
    }  
  
    /** 
     * 从FTP服务器列出指定文件夹下文件名列表。 
     *  
     * @param remotePath 
     *            FTP服务器上的相对路径 
     * @return List<String> 文件名列表,如果出现异常返回null。 
     * @throws IOException 
     * @author Elfy
     * @date 2013年02月25日  
     */  
    public List<String> getFileNameList(String remotePath) throws IOException {  
        // 目录列表记录  
        List<String> fileNames = new ArrayList<String>();  
        FTPClient ftp = new FTPClient();  
        try {  
            int reply;  
            ftp.connect(url, port);  
            // 如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器  
            ftp.login(userName, password);// 登录  
            reply = ftp.getReplyCode();  
            if (!FTPReply.isPositiveCompletion(reply)) {  
                ftp.disconnect();  
                return null;  
            }  
            ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录  
            FTPFile[] fs = ftp.listFiles();  
            for (FTPFile file : fs) {  
                fileNames.add(file.getName());  
            }  
            ftp.logout();  
        } catch (IOException e) {  
            e.printStackTrace();  
            throw e;  
        } finally {  
            if (ftp.isConnected()) {  
                try {  
                    ftp.disconnect();  
                } catch (IOException ioe) {  
                }  
            }  
        }  
        return fileNames;  
    }  
  
}    





你的到来我很高兴!
分享到:
评论

相关推荐

    FtpUtil.java(ftp工具类)

    ftp工具类,构造方法初始化类,连接ftp,列出所有文件内容,下载文件

    FtpUtil工具类源码

    FtpUtil工具类源码

    基于springboot的FtpUtil工具类.zip

    本篇文章将围绕“基于SpringBoot的FtpUtil工具类”进行深入探讨,旨在帮助开发者理解和运用这一工具,以提升项目开发效率。 首先,我们要了解SpringBoot如何集成FTP服务。在SpringBoot中,我们可以利用Spring ...

    FtpUtil.java

    《FTPUtil.java——Java实现FTP文件传输工具类详解》 在Java编程中,FTPUtil.java是一个常见的工具类,用于处理FTP(File Transfer Protocol)文件传输协议相关的操作。它提供了便捷的方法来连接FTP服务器,上传、...

    java版ftp上传下载工具类

    `FtpUtil.java` 文件是这个工具类的核心,它通常会包含以下关键组件: 1. **连接设置**:工具类需要设置FTP服务器的主机地址、端口号、用户名和密码,以及可能的连接模式(主动或被动)。 2. **连接和断开**:`...

    我积攒的java工具类 基本满足开发需要的工具类

    D:\002 我的工具类\016 FtpUtil\FtpUtil.java D:\002 我的工具类\016 FtpUtil\FtpUtils.java D:\002 我的工具类\017在页面上显示各种文档中的内容。在servlet中的逻辑 D:\002 我的工具类\017在页面上显示各种文档中...

    FtpUtil工具类

    淘淘商城FtpUtil工具类 , 使用java代码访问ftp服务器 使用apache的FTPClient工具访问ftp服务器

    Java中各种工具类代码,.java文件以及使用说明

    包含各种工具类文件如ChangePinYin.java、CollectionUtil.java、DateUtil.java、DBConnectionUtil.java、FileUtil.java、FtpUtil.java、HttpClientUtil.java、MathUtil.java、MD5Util.java、StringUtil.java、...

    java中很实用的一些工具类

    这里提到的几个工具类都是Java开发中非常实用的,它们分别是CookieUtils、EasyUIResult、IDUtils、JsonUtils以及FtpUtil。下面将对这些工具类的功能进行详细介绍。 1. **CookieUtils**: 这个工具类主要用于处理HTTP...

    ftpUtil.zip,FTP相关工具类

    https://blog.csdn.net/weixin_45044097/article/details/109637761,这是原文。上传的资源是ftp上传的两个工具类,接近1500行代码,实现ftp连接,文件获取,上传,下载

    FTPUtil.java

    java FTP工具类,里面包含登陆,注销,查询FTP文件夹,以及下载进度条输出

    工具类的jar包集合

    5. `FtpUtil.java`:FTP(文件传输协议)工具类,提供了连接FTP服务器、上传/下载文件、管理目录等FTP相关操作的API。 6. `TaotaoResult.java`:这个名字可能是参照淘宝的API设计,用于封装接口返回的结果,通常...

    springboot-FtpUtil-master_springbootftputil_ftp_attentioniwd_DEM

    2. **FTP工具类**:`FtpUtil`是核心工具类,它包含了一系列静态方法,如`connect()`用于建立连接,`uploadFile()`和`downloadFile()`分别用于文件上传和下载,以及`disconnect()`用于关闭连接。这些方法内部会使用`...

    Java常用工具类.zip

    资源包括Java开发中经常使用到的一些工具类,源代码,亲测可直接使用。 工具类包括:CookieUtils;ExceptionUtil;FtpUtil;HttpClientUtil;IDUtils;JsonUtils;PictureResult;EasyUIResult

    最新版FTP上传需要的jar包和java FTPUtil例子

    标题提到的"FTPUtil例子"是一个Java类,它封装了FTP操作的逻辑,便于开发者在自己的项目中调用。 "commons-net-3.6.jar"是Apache Commons Net库的一个版本,这个库为Java提供了丰富的网络协议支持,包括FTP。Apache...

Global site tag (gtag.js) - Google Analytics