jdk7 自带ftp 下载功能

本文介绍了一种使用JDK7实现的FTP下载功能的方法。文章详细解释了如何通过Java代码连接FTP服务器,并进行文件的下载操作。主要内容包括服务器连接、文件下载及断开连接的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

jdk7 ftp下载功能:

 

 

public class Test
{
 /**
  *
  * 本地文件名
  */
 private String localfilename;
 /**
  *
  * 远程文件名
  */
 private String remotefilename;
 /**
  *
  * FTP客户端
  */
 private FtpClient ftpClient;

 /**
  * 服务器连接
  *
  * @param ip
  *            服务器IP
  * @param port
  *            服务器端口
  * @param user
  *            用户名
  * @param password
  *            密码
  * @param path
  *            服务器路径
  * @throws FtpProtocolException
  *
  */
 public void connectServer(String ip, int port, String user, String password, String path) throws FtpProtocolException
 {
  try
  {
   /* ******连接服务器的两种方法****** */
   // 第一种方法
   
     ftpClient =FtpClient.create();
     ftpClient.connect(new InetSocketAddress(ip, port));
   
   // 第二种方法
   //ftpClient = FtpClient.create(ip);
   //ftpClient.login(user, null, password);
   ftpClient.login(user,password.toCharArray());
   // 设置成2进制传输
   ftpClient.setBinaryType();
   System.out.println("login success!");

   if (path.length() != 0)
   {
    // 把远程系统上的目录切换到参数path所指定的目录
    ftpClient.changeDirectory(path);
   }
   ftpClient.setBinaryType();
  } catch (IOException ex)
  {
   ex.printStackTrace();
   throw new RuntimeException(ex);
  }

 }

 /**
  * 关闭连接
  *
  */

 public void closeConnect()
 {
  try
  {
   ftpClient.close();
   System.out.println("disconnect success");
  } catch (IOException ex)
  {
   System.out.println("not disconnect");
   ex.printStackTrace();
   throw new RuntimeException(ex);
  }
 }

 

/**
  *
  * 下载文件
  *
  * @param remoteFile
  *            远程文件路径(服务器端)
  * @param localFile
  *            本地文件路径(客户端)
  * @throws FtpProtocolException
  *
  */
 public void download(String remoteFile, String localFile) throws FtpProtocolException
 {
  TelnetInputStream is = null;
  FileOutputStream os = null;
  try
  {

   // 获取远程机器上的文件filename,借助TelnetInputStream把该文件传送到本地。
   is = (TelnetInputStream) ftpClient.getFileStream(remoteFile);
   File file_in = new File(localFile);
   os = new FileOutputStream(file_in);

   byte[] bytes = new byte[1024];
   int c;
   while ((c = is.read(bytes)) != -1)
   {
    os.write(bytes, 0, c);
   }
   System.out.println("download success");
  } catch (IOException ex)
  {
   System.out.println("not download");
   ex.printStackTrace();
   throw new RuntimeException(ex);
  } finally
  {
   try
   {
    if (is != null)
    {
     is.close();
    }
   } catch (IOException e)
   {
    e.printStackTrace();
   } finally
   {
    try
    {
     if (os != null)
     {
      os.close();
     }
    } catch (IOException e)
    {
     e.printStackTrace();
    }
   }
  }
 }

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值