当前位置:  编程技术>java/j2ee

java使用ftp上传文件示例分享

    来源: 互联网  发布时间:2014-11-02

    本文导语:  代码如下:import java.io.ByteArrayInputStream;  import java.io.FileOutputStream;  import java.io.IOException;  import java.net.SocketException;  import java.text.SimpleDateFormat;  import java.util.Date;  import org.apache.commons.io.IOUtils;  import org.apache.commons.net.ftp.FTPClient...

代码如下:

import java.io.ByteArrayInputStream; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.net.SocketException; 
import java.text.SimpleDateFormat; 
import java.util.Date; 

import org.apache.commons.io.IOUtils; 
import org.apache.commons.net.ftp.FTPClient; 

/**
 * class name:FTPFileTransmit

 * class description: please write your description

 * Remark:

 * @version 1.00 2011-8-9
 */ 
public class FTPFileTransmit { 

    private String ftpPath; 
    private String ftpName; 
    private String ftpPassword; 
    private String ftpServerIP; 

    public FTPFileTransmit() { 
        this.ftpPath = "xxx/xxx/"; 
        this.ftpName = "name"; 
        this.ftpPassword = "pass"; 
        this.ftpServerIP = "192.168.0.xx"; 
    } 

     
    /**
     * Method name: saveInFTP

     * Description: 把文件存储在FTP上

     * Remark:

     * @param FolderName            示例"xxx/xxx/"
     * @param FileName              示例"thefilename"
     * @param data                  byte[]数组
     * @return  boolean

     */ 
    public boolean saveInFTP (String FolderName, String FileName, byte[] data) { 
        boolean flag = false; 

        // 创建FTP客户端  
        FTPClient ftpClient = new FTPClient(); 
        // 输入流用于读取文件  
//      FileInputStream fis = null;  
        ByteArrayInputStream bis = null; 

        try { 
            // 如果FolderName 和 FileName都不符合基本要求, 那么就没有必要进行ftp操作  
            if (FolderName != null 
                    && FolderName.compareTo("") != 0 
                    && FileName != null 
                    && FileName.compareTo("") != 0) { 

                // 建立FTP连接  
                ftpClient.connect(this.ftpServerIP); 

                // 如果登录成功后, 才进行创建输入流  
                if (ftpClient.login(this.ftpName, this.ftpPassword)) { 
//                  File srcClientFile = new File("C:/ParseXML.xml");  

                    // 实例化输入流  
//                  fis = new FileInputStream(srcClientFile);  

                    if (ftpClient.changeWorkingDirectory(FolderName)) { 
                        // 将byte[]写入到输入流中, 实例化  
                        bis = new ByteArrayInputStream(data); 

                        // 设置缓冲  
                        ftpClient.setBufferSize(1024); 

                        // 设置文件类型(二进制类型)  
                        if (ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)) { 
                            flag = ftpClient.storeFile(FileName, bis); 
                        } 
                    } 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 关闭输入流  
                IOUtils.closeQuietly(bis); 
                // 关闭连接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    /**
     * Method name: getFromFTP

     * Description: 从FTP上读取文件

     * Remark:

     * @return  boolean

     */ 
    public boolean getFromFTP () { 
        boolean flag = false; 

        // 创建FTP客户端  
        FTPClient ftpClient = new FTPClient(); 
        // 输出流用于输出文件  
        FileOutputStream fos = null; 

        try { 
            // 建立FTP连接  
            ftpClient.connect(this.ftpServerIP); 
            // 如果登录成功后, 才进行创建输出流  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 
                // FTP文件  
                String distinationFile = "/name/xxx/xxx/xxx文件"; 
                // 实例化输出流  
                fos = new FileOutputStream("C:/ParseXML_InFTP.xml"); 

                // 设置缓冲  
                ftpClient.setBufferSize(1024); 

                // 设置文件类型(二进制类型)  
                if (ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE)) { 
                    ftpClient.retrieveFile(distinationFile, fos); 
                    flag = true; 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 关闭输出流  
                IOUtils.closeQuietly(fos); 
                // 关闭连接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    public boolean createDirectory() { 
        boolean flag = false; 

        // 创建FTP客户端  
        FTPClient ftpClient = new FTPClient(); 

        try { 
            // 建立FTP连接  
            ftpClient.connect(this.ftpServerIP); 
            // 如果登录成功后, 才进行操作  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 

                // 切换文件路径, 到FTP上的"NNDD3"文件夹下  
                if (this.ftpPath != null && this.ftpPath.compareTo("") != 0 
                        && ftpClient.changeWorkingDirectory(this.ftpPath)) { 
                    SimpleDateFormat f = new SimpleDateFormat("yyyyMMdd"); 
                    String time = f.format(new Date()); 

                    String FolderName = time + "_ReTransmit"; 
                    ftpClient.makeDirectory(FolderName); 
                    flag = true; 
                } 
            } 
        } catch (SocketException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (IOException e) { 
            e.printStackTrace(); 
            flag = false; 
        } catch (Exception e) { 
            e.printStackTrace(); 
            flag = false; 
        } finally { 
            try { 
                // 关闭连接  
                ftpClient.disconnect(); 
            } catch (IOException e) { 
                e.printStackTrace(); 
            } 
        } 

        return flag; 
    } 

    public String[] getAllFolderNames () { 
        // 创建FTP客户端  
        FTPClient ftpClient = new FTPClient(); 

        try { 
            // 建立FTP连接  
            ftpClient.connect(this.ftpServerIP); 

            // 如果登录成功后, 才进行操作  
            if (ftpClient.login(this.ftpName, this.ftpPassword)) { 

                // 切换文件路径, 到FTP上的"NNDD3"文件夹下  
                if (this.ftpPath != null && this.ftpPath.compareTo("") != 0 
                        && ftpClient.changeWorkingDirectory(this.ftpPath)) { 
                    // 将当前时间减去2天, 删除的是前两天的数据包  
                    String time = minusTime(); 

                    String[] allNames = ftpClient.listNames(); 

                    String[] temp = new String[allNames.length]; 
                    // 初始化数组  
                    for (int j = 0; j < allNames.length; j ++) { 
                        temp[j] = ""; 
                    } 

                    // 找出要删除文件夹的名称  
                    for (int i = 0; i < allNames.length; i ++) { 
                        if (allNames[i].substring(0, 8).compareTo(time)

    
 
 

您可能感兴趣的文章:

  • andriod下java socket网络编程:java socket客户端服务端代码示例
  • 输出java进程的jstack信息示例分享 通过线程堆栈信息分析java线程
  • java Servlet实现Session创建存取以及url重写代码示例
  • java 四舍五入使java保留2位小数示例讲解
  • java进行error捕获和处理示例(java异常捕获)
  • java去除集合中重复元素示例分享 java去除重复
  • java读取csv文件示例分享(java解析csv文件)
  • java求三个数的最大值的示例分享
  • java生成字母数字组合的随机数示例 java生成随机数
  • java实现网页解析示例
  • java协变返回类型使用示例
  • 使用java执行定时任务示例
  • java自定义枚举转换器示例
  • java向文件末尾添加内容示例分享
  • java正则表达式获取url的host示例
  • java使用正则表达校验手机号码示例(手机号码正则)
  • java实现jframe透明窗体示例
  • java的split方法使用示例
  • java抓取网页数据示例
  • Oracle 使用Java Source 简单示例
  • java自定义日期转化类示例
  • 大文件上传的Java Applet mupload
  • 利用java.net.URLConnection上传文件
  • 怎么在java中向linux上传文件问题
  • java中怎么实现xml文件上传?
  • Java文件上传组件 COS
  • 不让用户选择文件,程序指定本地文件,Java可以实现上传到服务器吗?
  • 怎么用java现实文件加密之后上传???
  • java异步上传图片示例
  • JSP上传图片产生 java.io.IOException: Stream closed异常解决方法
  • 如何用Java实现上传文件功能
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Java读写包括中文的txt文件时不同编码格式问题解决
  • JAVA编译的CLASS文件可以反编译为JAVA文件吗?
  • 保存java.sh文件时,多出一个java.sh~文件
  • 用什么工具可以把JAVA的.CLASS文件反编译成.JAVA文件??
  • 请问把.class文件反编译为.java文件的工具有什么???能恢复到原来的.java文件吗???
  • 一个.java文件中怎样来调用另一个.java文件中的变量及其它东西!
  • 用java读中文linux中的文件是正确的,用java读英文linux版本中的文件是乱码,如何使英文linux读出的文件数据也是中文的?
  • java文件复制代码片断(java实现文件拷贝)
  • 我刚学java,想请教一下,我在文本中创建了一个接口,一个类,还有一个扩展类,保存为.java文件时,如何给文件名?
  • JSP上传图片产生 java.io.IOException: Stream closed异常解决方法 iis7站长之家
  • java文件操作之java写文件简单示例
  • java复制文件和java移动文件的示例分享
  • java读取文件内容的三种方法代码片断分享(java文件操作)
  • 编译前的java文件没有,只有class文件
  • 我用java编了一个程序,是多个java文件,属于一个包,需要联编,但我不会
  • 低级问题:.java文件交付用户怎么运行,难道也是DOS下:java xx.java?有没有.exe?
  • 我在jbuilder中新建一个servlet,源程序为java文件,是怎么从java到servler转换的?
  • 求救!!如何在java程序中调用外部非java的exe文件?
  • 谁有办法用java执行于java.exe不在一个目录的class文件?
  • 怎样把CLASS文件转成JAVA文件
  • 如何从一个.class文件得到它的.java文件?
  • java命名空间java.sql类types的类成员方法: java_object定义及介绍
  • 我想学JAVA ,是买THINK IN JAVA 还是JAVA2核心技术:卷1 好???
  • java命名空间java.awt.datatransfer类dataflavor的类成员方法: imageflavor定义及介绍
  • 请问Java高手,Java的优势在那里??,Java主要适合于开发哪类应用程序
  • java命名空间java.lang.management类managementfactory的类成员方法: getcompilationmxbean定义及介绍
  • 如何将java.util.Date转化为java.sql.Date?数据库中Date类型对应于java的哪个Date呢
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getlibrarypath定义及介绍
  • 谁有电子版的《Java编程思想第二版(Thinking in java second)》和《Java2编程详解(special edition java2)》?得到给分
  • java命名空间java.lang.management接口runtimemxbean的类成员方法: getstarttime定义及介绍
  • 本人想学java,请问java程序员的待遇如何,和java主要有几个比较强的方向




  • 特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3