当前位置:编程学习 > JAVA >>

Java FTP上传下载单个文件示例代码

 

首先导入两个jar包:commons-io-1.3.2.jar、commons-net-3.0.1.jar。

 

示例代码如下:

 

package com;

 

 

import org.apache.commons.io.IOUtils;

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

import java.io.File;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.FileOutputStream;

public class FtpTest1 {

 

 

public static void main(String[] args) {

 

//以下是我的FTP服务器的信息

 

String ip="184.171.16.221";

int port=21;

String userName="foqrume2";

String passWord="qazwasx11`12";

String sourceFileUrl="D:\\数据2011-08-1---2011-08-31.xls";

String ftpGoalDir="/bbs/communitypic";

String downDir="c:\\";

String renameFileName="tang.xls";

String downFileName="downtfq.rar";

        testUpload(ip,port,userName,passWord,sourceFileUrl,ftpGoalDir,renameFileName);

       

        //testDownload(ip,port,userName,passWord,ftpGoalDir,downDir,downFileName);

    }

 

 

    /**

     * FTP上传单个文件测试

     */

/**

*

*/

 

/***

* 经测试可以上传文件类型:rar,xls,doc,txt,gif

* @ftpGoalDir:ftp服务器的目录  

* @sourceFileUrl 上传文件的路径

*

*/

    public static boolean testUpload(String ip,int port,String userName,String passWord,String sourceFileUrl,String ftpGoalDir,String renameFileName) {

        //上传不成功

     boolean res=false;

     //创建一个连接FTP服务器对象

     FTPClient ftpClient = new FTPClient();

        //创建一个文件写入流对象

        FileInputStream fis = null;

 

 

        try {

         //连接FTP服务器

            ftpClient.connect(ip);

            //登录FTP连接

            ftpClient.login(userName, passWord);

            //创建文件对象

            File srcFile = new File(sourceFileUrl);

            //向FTP服务器写入文件

            fis = new FileInputStream(srcFile);

            //设置上传目录

            ftpClient.changeWorkingDirectory(ftpGoalDir);

            //向目标服务器写入文件大小限制

            ftpClient.setBufferSize(1024);

            //

            ftpClient.setControlEncoding("GBK");

            //设置文件类型(二进制)

            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

            ftpClient.storeFile(renameFileName, fis);

            res=true;

            System.out.println("upload successful!");

        } catch (IOException e) {

            e.printStackTrace();

            throw new RuntimeException("FTP客户端出错!", e);

        } finally {

            IOUtils.closeQuietly(fis);

            try {

                ftpClient.disconnect();

            } catch (IOException e) {

                e.printStackTrace();

                throw new RuntimeException("关闭FTP连接发生异常!", e);

            }

        }

       

        return res;

    }

 

 

    /**

     * FTP下载单个文件测试

     */

    public static void testDownload(String ip,int port,String userName,String passWord,String ftpGoalDir,String sourceFileUrl,String renameFileName) {

        FTPClient ftpClient = new FTPClient();

        FileOutputStream fos = null;

 

 

        try {

            ftpClient.connect(ip);

            ftpClient.login(userName, passWord);

 

 

            String remoteFileName = ftpGoalDir;

            fos = new FileOutputStream(sourceFileUrl+"/"+renameFileName);

 

 

            ftpClient.setBufferSize(1024);

            //设置文件类型(二进制)

            ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);

            ftpClient.retrieveFile(remoteFileName, fos);

            System.out.println("successful!");

        } catch (IOException e) {

            e.printStackTrace();

            throw new RuntimeException("FTP客户端出错!", e);

        } finally {

            IOUtils.closeQuie

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,