`

用Java写个ftp传输类实现文件的上传和下载,用ikvmc转成dll

    博客分类:
  • ikvm
 
阅读更多

1.Java类:

package com.wjy.ftp.transmission;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.io.StringBufferInputStream;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile;
import org.apache.commons.net.ftp.FTPReply;

public class FtpTransmission {
    private String serverUrl=null;
    private String userName=null;
    private String password=null;
    private String storePath=null;
    private int port=0;
    
    public FtpTransmission(String serverUrl, String userNameString,
            String password, String storePath, int port) {
        super();
        this.serverUrl = serverUrl;
        this.userName = userNameString;
        this.password = password;
        this.storePath = storePath;
        this.port = port;
    }

    public String getServerUrl() {
        return serverUrl;
    }

    public void setServerUrl(String serverUrl) {
        this.serverUrl = serverUrl;
    }

    public String getUserNameString() {
        return userName;
    }

    public void setUserNameString(String userNameString) {
        this.userName = userNameString;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getStorePath() {
        return storePath;
    }

    public void setStorePath(String storePath) {
        this.storePath = storePath;
    }

    public int getPort() {
        return port;
    }

    public void setPort(int port) {
        this.port = port;
    }

    /**
     * Description:实现ftp的文件上传
     * @author 王吉元
     * @Version 1.0 Dec 16,2013
     * @param fileName:上传的文件名称
     * @param fileContent:文件的内容
     * @return  成功返回ture,失败返回false
     */
    public boolean fileUpLoad(String fileName,String contents){
        boolean isSuccessed=false;
        FTPClient ftpClient=new FTPClient();
        StringBufferInputStream input=new StringBufferInputStream(contents);
        try {
            int reply=0;
            ftpClient.connect(serverUrl,port);
            ftpClient.login(userName, password);
            reply=ftpClient.getReplyCode();
            if(!FTPReply.isPositiveCompletion(reply)){
                ftpClient.disconnect();
                return isSuccessed;
            }
            ftpClient.changeWorkingDirectory(storePath);
            ftpClient.storeFile(fileName, input);
            
            input.close();
            ftpClient.logout();
            isSuccessed=true;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            if(ftpClient.isConnected()){
                try {
                    ftpClient.disconnect();
                } catch (Exception e2) {
                    // TODO: handle exception
                    e2.printStackTrace();
                }
            }
        }
        return isSuccessed;
    }
    /**
     * Description:实现ftp的文件下载
     * @author 王吉元
     * @Version 1.0 Dec 16,2013
     * @param fileName:下载的文件名称
     * @param localPath:下载后保存在本地的路径
     * @return  成功返回ture,失败返回false
     */
    public boolean fileDownload(String fileName,String localPath){
        boolean isSuccessed=false;
        FTPClient ftpClient=new FTPClient();
        try {
            int reply=0;
            ftpClient.connect(serverUrl,port);
            ftpClient.login(userName, password);
            reply=ftpClient.getReplyCode();
            if(!FTPReply.isPositiveCompletion(reply)){
                ftpClient.disconnect();
                return isSuccessed;
            }
            ftpClient.changeWorkingDirectory(storePath);
            
            FTPFile[] files=ftpClient.listFiles();
            for(FTPFile file : files){
                if(file.getName().equals(fileName)){
                    File localFile=new File(localPath+"/"+file.getName());
                    OutputStream outputStream=new FileOutputStream(localFile);
                    
                    ftpClient.retrieveFile(file.getName(), outputStream);
                    outputStream.close();
                }
            }
            
            ftpClient.logout();
            isSuccessed=true;
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }finally{
            if(ftpClient.isConnected()){
                try {
                    ftpClient.disconnect();
                } catch (Exception e2) {
                    // TODO: handle exception
                    e2.printStackTrace();
                }
            }
        }
        return isSuccessed;
    }
}

2.Java的jar测试:(被注释掉的部分是上传测试代码)

package com.wjy.main;

import java.io.File;
import java.io.FileInputStream;

import com.wjy.ftp.transmission.FtpTransmission;

public class TestMain {
//    public static void main(String args[]){
//        FtpTransmission ftpTransmission=new FtpTransmission("10.13.30.22", "wjy", "wjywjy", "./tools/", 21);
//        try {
//            StringBuilder stringBuilder=new StringBuilder();
//            FileInputStream fileInputStream=new FileInputStream(new File("E://testmodel.cld"));
//            int cc;
//            while((cc=fileInputStream.read())!=-1){
//                stringBuilder.append((char)cc);
//            }
//            System.out.println(stringBuilder);
//            boolean flag=ftpTransmission.fileUpLoad("testmodel.cld", stringBuilder.toString());
//            System.out.println(flag);
//        } catch (Exception e) {
//            // TODO: handle exception
//            e.printStackTrace();
//        }
//    }
    
    public static void main(String args[]){
    FtpTransmission ftpTransmission=new FtpTransmission("10.13.30.22", "wjy", "wjywjy", "./tools/", 21);
    try {
        boolean flag=ftpTransmission.fileDownload("ctest.txt","F://NB");
        System.out.println(flag);
    } catch (Exception e) {
        // TODO: handle exception
        e.printStackTrace();
    }
}
}

3.C#的dll(由ikvmc转成)测试:(被注释掉的部分是上传测试代码)

using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
using com.wjy.ftp.transmission;
namespace FTPTransJarTest
{
    class Program
    {
        //static void Main(string[] args)
        //{
            
        //FtpTransmission ftpTransmission=new FtpTransmission("10.13.30.22", "wjy", "wjywjy", "./tools/", 21);
        //try {
        //    StringBuilder stringBuilder=new StringBuilder();
        //    StreamReader file = new StreamReader("E://testmodel.cld");
        //    int cc;
        //    while((cc=file.Read())!=-1){
        //        stringBuilder.Append((char)cc);
        //    }
        //    Boolean flag = ftpTransmission.fileUpLoad("ctest.cld",stringBuilder.ToString());
        //    Console.Write(flag);
        //} catch (Exception e) {
        //    // TODO: handle exception
        //    Console.Write(e.Message);
        //}
    
        //}

        static void Main(string[] args)
        {

            FtpTransmission ftpTransmission = new FtpTransmission("10.13.30.22", "wjy", "wjywjy", "./tools/", 21);
            try
            {
                Boolean flag = ftpTransmission.fileDownload("ctest.txt", "F://NB");
                Console.Write(flag);
            }
            catch (Exception e)
            {
                // TODO: handle exception
                Console.Write(e.Message);
            }

        }
    }
}

 

 

分享到:
评论

相关推荐

    Java实现FTP文件上传和下载

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

    Java实现FTP批量大文件上传下载

    本文介绍了如何使用 Java 实现 FTP 服务器上的大批量文件的上传和下载,处理大文件的上传和下载。通过 Java 现有的可用的库来编写 FTP 客户端代码,并开发成 Applet 控件,做成基于 Web 的批量、大文件的上传下载...

    Java上传下载ftp上的文件

    本文将深入探讨如何使用Java实现FTP文件的上传和下载功能,以满足标题和描述中的需求。作者宋海康提供的案例将为我们提供一个基础,帮助我们理解这个过程。 首先,我们需要导入Java FTP库,通常是`commons-net`库,...

    java实现ftp文件传输

    Java实现FTP文件传输涉及到多个关键知识点,包括FTP协议的基本概念、Java中的FTP客户端库、以及如何使用Java进行文件操作。以下是对这些知识点的详细说明: 1. FTP协议:FTP(File Transfer Protocol)是一种用于在...

    Java实现FTP批量大文件上传下载.pdf

    Java实现FTP批量大文件上传下载需要选择合适的FTP客户端库,例如J-FTP,并使用Java Applet实现基于Web的FTP客户端。需要考虑安全性问题,例如数字签名、数据加密等。同时,需要选择合适的FTP服务器端程序,例如Serv-...

    java编写的ftp文件实时监控下载上传

    用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...

    java实现的ftp文件上传

    首先,我们来看标题和描述中的关键词"java实现的ftp文件上传",这表明我们要讨论的是使用Java编程语言来实现在FTP服务器上上传文件的过程。Java提供了一个名为`java.net.Socket`的基本网络连接类,但直接使用它来...

    FTP JAVA工具类(连接FTP,上传文件到FTP,删除FTP文件,下载FTP文件,检索FTP文件)

    本篇文章将详细讲解如何使用Java编写一个FTP工具类,实现连接FTP服务器、上传文件、删除文件、下载文件以及检索文件的功能。 首先,我们需要引入Apache Commons Net库,该库提供了丰富的FTP客户端API。在`pom.xml`...

    JAVA 操作FTP的工具类,上传,下载,删除功能都有了。

    总之,这个Java FTP工具类是开发中的一个宝贵资源,它简化了与FTP服务器的交互,包括文件的上传、下载和删除。通过学习和使用此类,开发者可以更高效地实现FTP相关的功能,提高工作效率,并且能够更好地应对各种网络...

    使用java实现的linux和ftp服务器文件上传下载工具

    这是我使用java实现的linux和ftp服务器文件上传下载工具,需要电脑安装jdk8, 启动命令,java -jar linuxAndFtp.jar 启动成功后,浏览器访问:http://localhost:9999 服务器的账号密码通过服务器列表页面管理,添加的...

    用JAVA实现Ftp文件上传下载

    总结,使用Java实现FTP文件上传和下载主要涉及连接FTP服务器、身份验证、设置工作模式、传输文件及断开连接等步骤。Apache Commons Net库提供了丰富的API,简化了这些操作。通过编写测试用例,我们可以验证FTP操作的...

    用Java实现FTP批量大文件上传下载

    ### 用Java实现FTP批量大文件上传下载的关键技术与实现 #### 一、引言 在当前互联网技术的发展中,文件传输是不可或缺的一部分。尤其是在工程建设项目中,常常需要跨地域的大规模文件交换。传统的HTTP传输方式虽然...

    java实现文件上传到ftp

    `Ftp.java`可能包含基本的FTP连接和文件上传方法,而`MyFtpClient.java`可能是一个自定义的FTP客户端类,扩展了`Ftp.java`的功能,提供了更友好的接口。 3. **FtpMessage.properties**:这个文件是属性文件,通常...

    java写的ftp下载上传定时监控

    Java作为多平台支持的编程语言,提供了丰富的库和工具来实现FTP功能,包括下载、上传文件以及定时监控等操作。本篇文章将深入探讨如何使用Java进行FTP文件传输,并涉及自动解压和压缩的功能。 首先,让我们关注Java...

    java写的FTP上传下载工具(支持多用户)

    Java编写的FTP上传下载工具是一种基于Java语言实现的文件传输应用程序,主要功能是与FTP(File Transfer Protocol)服务器进行交互,实现文件的上传和下载。这个工具特别之处在于它支持多用户登录,这意味着不同的...

    Java实现ftp文件传输

    在IT行业中,文件传输协议(FTP)是一种标准网络协议,用于在网络上进行文件的上传和下载。在Java编程环境中,我们可以利用Java的内置库`java.net`和`java.io`来实现FTP客户端和服务端的功能。本篇文章将深入探讨...

    java实现ftp、sftp的文件上传和下载

    这篇内容将详细介绍如何使用Java实现FTP和SFTP的文件上传与下载,并涉及相关的Apache库。 FTP是一种基于TCP的服务,主要用于在互联网上进行文件传输。Java中可以使用Apache Commons Net库来实现FTP操作。首先,需要...

    java实现Ftp批量下载文件及解压

    在Java编程环境中,FTP(File Transfer Protocol)是一个用于在计算机之间传输文件的标准协议。通过Java实现FTP批量下载文件以及解压的功能,可以极大地提高工作效率,特别是在处理大量数据时。以下是一份详细的步骤...

    Android使用ftp方式实现文件上传和下载

    Android 使用 FTP 方式实现文件上传和下载是移动应用开发中的一项重要功能,特别是在 OTA 在线升级项目中,文件上传和下载是一个关键步骤。下面就 Android 使用 FTP 方式实现文件上传和下载的技术要点进行详细的介绍...

Global site tag (gtag.js) - Google Analytics