java中FTP文件上传/下载

来源:互联网 发布:守望先锋优化设置 编辑:程序博客网 时间:2024/05/19 19:57

java中的FTP文件上传与下载测试程序:

所用jar包:

commons-net-1.4.1.jar【jar包下载】
jakarta-oro-2.0.7.jar         【 jar包下载 】

测试程序示例:
<span style="font-size:14px;">package com.zhuifeng.ftptest;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.net.SocketException;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;/** *  * @author guoxk * * @version 创建时间 2015年9月18日 下午2:40:30 * * 类描述:测试ftp传输 * */public class FTPMain {      /**     * @author 作者姓名     *     * 方法描述:主测试方法     * @param args     */    public static void main(String[] args) {     String ftpHost = "127.0.0.1";//服务器地址    int ftpPort = 21;//服务器端口    String ftpUsername = "gxk";//登录用户名    String ftpPassword = "gxk";//登录密码        FTPClient ftpClient = getFTPClient(ftpHost, ftpPassword, ftpUsername, ftpPort);    /*     * 测试上传     */    //upload(ftpClient, "test.txt", "H:\\work\\test.txt");        /*     * 测试下载     */    download(ftpClient, "", "test.txt", "H:\\work");    }        /**     * 获取FTPClient对象     * @param ftpHost 主机服务器     * @param ftpPassword 密码     * @param ftpUsername 用户名     * @param ftpPort 端口默认为21     * @return     */    public static FTPClient getFTPClient(String ftpHost, String ftpPassword,              String ftpUsername, int ftpPort) {    FTPClient ftpClient = new FTPClient();    try {    //获取连接ftpClient.connect(ftpHost, ftpPort);//登录ftpClient.login(ftpUsername, ftpPassword);} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return ftpClient;         }     /**    * @author 作者姓名    *    * 方法描述:上传文件    * @param ftpClient    * @param ftpPath ftp保存路径    * @param localPath 本地路径    */    public static void upload(FTPClient ftpClient, String ftpPath ,String localPath) {        File ftpFile = new File(ftpPath);    File localFile = new File(localPath);    try {FileInputStream fis = new FileInputStream(localFile);//输入流ftpClient.setFileType(FTP.BINARY_FILE_TYPE);//文件类型int reply = ftpClient.getReplyCode();//响应编码if (!FTPReply.isPositiveCompletion(reply)) {ftpClient.disconnect();return;}ftpClient.storeFile(localFile.getName(), fis);//System.out.println("***********");fis.close();ftpClient.logout();} catch (SocketException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}    }       /**    * @author 作者姓名    *    * 方法描述:下载ftp上的文件到本地    * @param ftpClient  ftp服务    * @param ftpPathftp上的相对路径    * @param fileName   下载的文件名    * @param localPath  本地存储路径    * @return    */    public static void download(FTPClient ftpClient, String ftpPath,    String fileName, String localPath) {int reply = ftpClient.getReplyCode();//响应编码try {if (!FTPReply.isPositiveCompletion(reply)) {ftpClient.disconnect();return;}ftpClient.changeWorkingDirectory(ftpPath);// 转移到FTP服务器目录FTPFile [] ffs = ftpClient.listFiles();//下载文件列表for (FTPFile ff : ffs) {if (ff.getName().equals(fileName)) {File localFile = new File(localPath + "\\" + ff.getName());OutputStream os = new FileOutputStream(localFile);ftpClient.retrieveFile(ff.getName(), os);//System.out.println("+++++++++++++");os.close();}}ftpClient.logout();} catch (IOException e) {e.printStackTrace();}    }        }  </span>


0 0
原创粉丝点击