Sharpleo 发表于 2013-2-3 13:26:43

Java实现FTP上传下载功能

Java FTP客户端工具包很多,在此我选用的Apache的FTPClient。这个包的获取可以通过http://commons.apache.org/net/来获取,我使用的是最新的commons-net-1.4.1.zip。其中包含了众多的java网络编程的工具包,官方文档列举如下:
    支持网络协议如下:
      FTP
      NNTP
      SMTP
      POP3
      Telnet
      TFTP
      Finger
      Whois
      rexec/rcmd/rlogin
      Time (rdate) and Daytime
      Echo
      Discard
      NTP/SNTP
下面是一个使用FTPClient来实现的FTP上传和下载的功能,
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; /** * Apache commons-net 试用一把,看看FTP客户端工具做的好用不 * * @author : leizhimin,2008-8-20 14:00:38。<p> */ public class FtpTest {   public static void main(String[] args) {         testUpload();         testDownload();   }   /**      * FTP上传单个文件测试      */   public static void testUpload() {         FTPClient ftpClient = new FTPClient();         FileInputStream fis = null;         try {             ftpClient.connect("192.168.14.117");             ftpClient.login("admin", "123");             File srcFile = new File("C:\\new.gif");             fis = new FileInputStream(srcFile);             //设置上传目录             ftpClient.changeWorkingDirectory("/admin/pic");             ftpClient.setBufferSize(1024);             ftpClient.setControlEncoding("GBK");             //设置文件类型(二进制)             ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);             ftpClient.storeFile("3.gif", fis);         } 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);             }         }   }   /**      * FTP下载单个文件测试      */   public static void testDownload() {         FTPClient ftpClient = new FTPClient();         FileOutputStream fos = null;         try {             ftpClient.connect("192.168.14.117");             ftpClient.login("admin", "123");             String remoteFileName = "/admin/pic/3.gif";             fos = new FileOutputStream("c:/down.gif");             ftpClient.setBufferSize(1024);             //设置文件类型(二进制)             ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);             ftpClient.retrieveFile(remoteFileName, fos);         } catch (IOException e) {             e.printStackTrace();             throw new RuntimeException("FTP客户端出错!", e);         } finally {             IOUtils.closeQuietly(fos);             try {               ftpClient.disconnect();             } catch (IOException e) {               e.printStackTrace();               throw new RuntimeException("关闭FTP连接发生异常!", e);             }         }   } }
页: [1]
查看完整版本: Java实现FTP上传下载功能