使用Java制作FTP下载的方法

来源:互联网 发布:手机知乎怎么匿名提问 编辑:程序博客网 时间:2024/05/17 09:18
准备工作:
   需要两个JDK包:commons-net-1.4.1.jar,jakarta-oro.jar包
   使用工具:用的MyEclipse8.5
   准备FTP服务器:找相关资源就行
   创建项目:...

代码部分:

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;

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

public class DownDemo {
   
    publicstatic boolean downFile(String url, int port, Stringusername,
          Stringpassword, String remotePath, String fileName,
          StringlocalPath) {
       booleansuccess = false;
       FTPClientftp = new FTPClient();
       try {
          intreply;
         ftp.connect(url, port);// 根据FTP服务器hostname和FTP服务器端口 ,连接
          //如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
         ftp.login(username, password);
          reply =ftp.getReplyCode();// 最后FTP的答复
          //连接后检测返回码来校验连接是否成功
          if(!FTPReply.isPositiveCompletion(reply)) {
            ftp.disconnect();// 关闭连接到FTP服务器和恢复连接参数的默认值。
             returnsuccess;// false失败
          }
         ftp.changeWorkingDirectory(remotePath);// 转移到FTP服务器目录
           // 使用默认的系统autodetect机制,获得的一个列表文件信息,为当前工作目录。
          FTPFile[] fs= ftp.listFiles();
          for (FTPFileff : fs) {
            System.out.println(ff.getName());
             if(ff.getName().equals(fileName)) {
                FilelocalFile = new File(localPath + "/" + ff.getName());
                OutputStreamis = new FileOutputStream(localFile);
               ftp.retrieveFile(ff.getName(), is);//取出一个命名的文件到服务器并将其写在给定的OutputStream
               is.close();// 关闭
             }
          }
         ftp.logout();// 登出FTP服务器的命令
          success =true;
       } catch(Exception e) {
          // TODO:handle exception
         e.printStackTrace();
       } finally{
          if(ftp.isConnected()) {
             try {
               ftp.disconnect();
             } catch(IOException ioe) {
               ioe.printStackTrace();
             }
          }
       }
       returnsuccess;
    }
}

public static void main(String[] args) {
       boolean ftp= false;
       DownDemo dd= new DownDemo();
       String url ="127.0.0.1";// URL地址
       int port =21;// 端口号
       Stringusername = "sa";// 用户名
       Stringpassword = "sa1234";// 密码
       StringremotePath = "/home/text/";// FTP服务器上的相对路径
       StringfileName = "testftp.txt";// 要下载的文件名
       StringlocalPath = "E:\\WorkTest\\ftpDemo\\src\\down";// 下载后保存到本地的路径
       ftp =DownDemo.downFile(url, port, username, password, remotePath,fileName,localPath);
      System.out.println(ftp);
}


直接调用方法就可以下载了

P.S.:如果需要前台界面 可以做成按钮 触发事件,也可以做成超链接……就随意了~
P.S2: 文件下载之后最好重命名一下~
P.S3:
两个包的下载地址~我太善良了~
http://u.115.com/file/f97c1f2797#
jakarta-oro.jar
http://u.115.com/file/f97243124e#
commons-net-1.4.1.jar
原创粉丝点击