`

从FTP下载文件到本地

阅读更多
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.testng.annotations.Test;

/**
 * 〈一句话功能简述〉<br>
 * 〈功能详细描述〉
 * 
 * @see [相关类/方法](可选)
 * @since [产品/模块版本] (可选)
 */
public class TestFtpClient {

    Logger logger = LoggerFactory.getLogger(TestFtpClient.class);

    /**
     * 
     * 从FTP下载文件到本地 <br>
     * 〈功能详细描述〉
     * 
     * @see [相关类/方法](可选)
     * @since [产品/模块版本](可选)
     */
    @Test
    public void testDownloadFileToLocal() throws Exception {
        // 从FTP上下载文件并打成ZIP包给用户下载
        FTPClient ftpClient = null;
        FileOutputStream fos = null;

        try {
            // 创建ftp连接对象
            ftpClient = new FTPClient();
            ftpClient.connect("192.168.1.1", 21);
            // 登陆ftp服务器
            ftpClient.login("test", "test");
            // 设置文件的传输类型,默认是ASCII,修改为二进制
            ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
            // 这个方法的意思就是每次数据连接之前,ftp client告诉ftp server开通一个端口来传输数据
            ftpClient.enterLocalPassiveMode();
            // 切换到指定目录中,如果切换失败说明目录不存在
            boolean boo = ftpClient.changeWorkingDirectory("luxiaofeng/b");
            // 如果切换路径失败,说明拼接的路径有问题,抛出异常
            if (!boo) {
                return;
            }

            fos = new FileOutputStream(new File("D:\\a.sql"));
            // If the current file type is ASCII, line separators in the file are converted to the local representation.
            // 如果当前的文件类型(ftpClient.setFileType)是ASCII,行分隔符将转化为本地的格式
            ftpClient.retrieveFile(new String("相关脚本.sql".getBytes("GBK"), "ISO-8859-1"), fos);
        } catch (Exception e) {
            throw new RuntimeException(e.getMessage());
        } finally {
            // 关闭ftp连接
            if (null != ftpClient) {
                try {
                    ftpClient.disconnect();
                } catch (IOException e) {
                    logger.error("关闭FTP连接异常", e);
                }
            }
            // 关闭zip文件输出流
            if (null != fos) {
                try {
                    fos.close();
                } catch (IOException e) {
                    logger.error("IO异常", e);
                }
            }
        }

    }
}

分享到:
评论

相关推荐

    上传文件到ftp,从ftp下载文件到本地

    支持所有文件的上传/下载*上传/下载文件的大小限制参照相关配置文件

    ABAP从FTP下载文件并解析到内表移动文件位置.zip

    在ABAP(Advanced Business Application Programming)环境中,处理文件操作,如从FTP服务器下载文件、解析ZIP文件、将数据存储到内表以及管理文件系统中的文件移动,是常见的任务。本篇将详细介绍如何实现这些功能...

    Java实现FTP文件上传和下载

    以下将详细介绍如何使用Java实现FTP文件上传和下载的步骤,以及涉及到的关键知识点。 首先,Java通过`java.net`和`javax.net`包提供了FTP功能,但这些原生API并不易用。因此,大多数开发人员会使用第三方库如Apache...

    C#下载ftp指定目录下所有文件

    在C#编程中,FTP(File Transfer Protocol)是一种常用的技术,用于在本地计算机与远程服务器之间传输文件。本文将详细讲解如何使用...这为C#开发者提供了一个基本的FTP文件下载模板,可以根据实际需求进行扩展和完善。

    java实现文件上传到FTP和从FTP下载到本地功能

    本文将详细讲解如何使用Java实现文件上传到FTP服务器以及从FTP服务器下载到本地的功能。 首先,为了实现FTP功能,我们需要引入相关的库。尽管提供的压缩包中没有包含jar文件,但通常我们会使用Apache Commons Net库...

    C# FTP上传下载文件

    FTP上传下载文件

    ftp从服务器上传下载文件

    FTP(File Transfer Protocol)是一种用于在网络上进行文件传输的标准协议,广泛应用于从服务器上传或下载文件。在Java中,我们可以利用Apache Commons Net库来实现FTP功能。以下是对FTP服务器上传和下载文件的详细...

    springboot 管理ftp文件系统,上传,下载,ftp

    在Spring Boot框架中,管理FTP文件系统涉及到使用Java的FTP客户端库来实现文件的上传和下载功能。Spring Boot简化了这一过程,通过集成各种库,如Apache Commons Net或JSch,我们可以轻松地创建一个FTP服务客户端。...

    FTP下载文件的示例程序

    通过分析这个示例程序,你可以了解到FTP文件下载的基本流程以及如何在MFC环境中实现它。同时,这也为你提供了扩展和定制FTP客户端功能的基础。例如,添加上传文件、断点续传、多线程下载等功能。这个源代码是一个很...

    用C#实现文件上传到FTP,从ftp下载,读取文件

    - 虽然C#本身不直接支持从FTP服务器读取文件内容,但可以结合上述下载步骤,先将文件下载到本地,然后读取本地文件内容。 例如,以下是一个简单的FTP文件上传示例: ```csharp using System; using System.IO; ...

    asp.net C# 利用FTP 远程下载文件

    本教程将详细讲解如何使用C#在ASP.NET环境中实现FTP远程下载文件到指定的本地盘符。 首先,要进行FTP远程下载,你需要引入`System.Net`命名空间,它包含`FtpWebRequest`和`FtpWebResponse`类,这两个类是FTP操作的...

    从ftp上下载txt文件插入到数据库中的原文件

    本教程将详细讲解如何利用Kettle从FTP服务器下载TXT文件并将其内容插入到数据库中。 首先,我们需要理解Kettle的工作流程。它通过工作流(Job)和转换(Transformation)两个主要组件来实现数据处理。工作流用于...

    vb.net 从FTP空间中下载文件

    在VB.NET中,从FTP(File Transfer Protocol)空间...总之,VB.NET提供了一套强大的工具和API,可以方便地处理FTP文件下载任务。通过理解和实践上述步骤,你将能够创建一个能够从FTP服务器下载文件的VB.NET应用程序。

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    ### Java FTP 指定下载文件和上传文件到指定的服务器目录 #### 一、概述 在本篇文章中,我们将详细介绍如何使用Java编程语言通过FTP(文件传输协议)实现文件的上传与下载功能,并能够将文件指定上传或下载到特定...

    python实现从ftp上下载文件的实例方法

    最后使用“self.ftp.retrbinary()”命令下载ftp文件即可。 #!/usr/bin/python # coding=utf-8 import os from ftplib import FTP # 引入ftp模块 class MyFtp: ftp = FTP() def __init__(self,host,port=21): ...

    Java 实现对比ftp文件和本地文件的修改时间 更新本地文件

    Java 实现对比ftp文件和本地文件的修改时间 ftp服务器文件比本地文件新时 把服务器文件下载覆盖本地文件 更新本地文件

    FTP上传下载,本地同步服务器文件

    FTP下载则相反,是从FTP服务器检索并保存到本地计算机上的过程。用户同样需要在FTP客户端中输入服务器信息并建立连接。之后,他们可以选择远程服务器上的文件或文件夹,然后开始下载到本地。FTP下载同样支持断点续传...

    java下载ftp目录下文件夹内所有文件到本地指定目录,如果本地目录已经存在就不下载

    能够在指定时间间隔就实现一次同步操作,可以把ftp目录下指定的文件夹中的所有文件复制到本地指定目录,还能判断是否已经复制过,如果复制过就不再复制

    pb调用ftp下载文件可展示列表

    综上所述,构建这样一个PB应用需要掌握FTP协议、PB的GUI编程、网络编程和错误处理等技能,实现一个功能完备且用户体验良好的FTP文件下载工具。对于开发者来说,理解这些知识点并在实际项目中应用,将极大地提升PB...

Global site tag (gtag.js) - Google Analytics