Java实现FTP上传下载
用到jar包的Maven依赖:
<dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.2</version> </dependency>
Demo:
package com.ydc.ln.codebase.java.app; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import org.apache.commons.io.IOUtils; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPReply; /** * @ClassName FtpDemo * @Description TODO * @author ydc * @date 下午10:03:36 2013-3-18 * @version V1.0 */ public class FtpDemo { public static String FTP_USERNAME = "ydc"; public static String FTP_PASSWORD = "ydc123"; public static String FTP_IP = "192.168.1.3"; public static String UPLOAD_FILE_NAME = "codeList.xml"; public static String UPLOAD_FILE_PATH = "F:/" + UPLOAD_FILE_NAME; public static String DOWNLOAD_FILE_NAME = "abc.jpg"; public static String DOWNLOAD_FILE_PATH = "F:/" + DOWNLOAD_FILE_NAME; /** * FTP上传单个文件测试 */ public void upload() { FTPClient ftpClient = new FTPClient(); FileInputStream fis = null; try { ftpClient.connect(FTP_IP); ftpClient.login(FTP_USERNAME, FTP_PASSWORD); int reply = ftpClient.getReplyCode(); System.out.println(reply); if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); return; } File srcFile = new File(UPLOAD_FILE_PATH); fis = new FileInputStream(srcFile); // 设置上传目录 ftpClient.changeWorkingDirectory("/admin/doc"); ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("GBK"); // 设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.storeFile(UPLOAD_FILE_NAME, fis); ftpClient.logout(); } 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 void download() { FTPClient ftpClient = new FTPClient(); FileOutputStream fos = null; try { ftpClient.connect(FTP_IP); ftpClient.login(FTP_USERNAME, FTP_PASSWORD); fos = new FileOutputStream(DOWNLOAD_FILE_PATH); ftpClient.setBufferSize(1024); // 设置文件类型(二进制) ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.retrieveFile(DOWNLOAD_FILE_NAME, 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); } } } /** * 向FTP服务器上的codeList.xml中写一个字符串 * */ public void write() { try { FTPClient ftpClient = getFtpClient(); InputStream in = new ByteArrayInputStream( "append str+汉字追加".getBytes("UTF-8")); boolean result = ftpClient.storeFile("codeList.xml", in); System.out.println("向codeList.xml中写入字符串成功?" + result); in.close(); ftpClient.logout(); } catch (Exception e) { e.printStackTrace(); } } private FTPClient getFtpClient() { FTPClient ftpClient = new FTPClient(); try { ftpClient.connect(FTP_IP); ftpClient.login(FTP_USERNAME, FTP_PASSWORD); int reply = ftpClient.getReplyCode(); System.out.println(reply); if (!FTPReply.isPositiveCompletion(reply)) { ftpClient.disconnect(); return null; } ftpClient.setBufferSize(1024); ftpClient.setControlEncoding("UTF-8"); } catch (SocketException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return ftpClient; } }
用到的软件:
FTP服务器:Quick Easy FTP Server 4.0.0
FTP客户端:FlashFXP
参考:
http://lavasoft.blog.51cto.com/62575/93883/
http://blog.csdn.net/hbcui1984/article/details/2720204
--------------------------------------------------------------------------------------------------------------------------
@author Free Coding http://ln-ydc.iteye.com
相关推荐
java实现本地与远程ftp上传,以及同时登陆连个ftp互相上传下载
用JAVA实现Ftp文件上传下载,提供实现方法和测试用例
用Java实现FTP批量大文件上传下载
NULL 博文链接:https://weareold.iteye.com/blog/638019
java实现ftp上传下载(jdk1.7以上).docx
JAVA实现ftp上传,下载,实现java语言编写上传ftp
java FTP 实现上传 下载 拷贝 亲测可用 java FTP 实现上传 下载 拷贝 java FTP 实现上传 下载 拷贝
java实现ftp上传jar包,里边包括edtftpj.jar、commons-net-1.4.1.jar、jakarta-oro-2.0.8.jar
java实现ftp上传和下载文件功能 文档里有详细的代码
一款由java实现ftp自动上传整个磁盘所有文件,包括目录,下面的JTextArea读取Log4j及命令行的信息,采用第三方ftpClient.不过下载的部分还没有时间去做.
Java实现FTP文件上传和下载
NULL 博文链接:https://yl244532032.iteye.com/blog/1863433
Java,FTP,用Java实现FTP批量大文件上传下载
主要介绍了Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法,需要的朋友可以参考下
java实现的ftp文件上传
java实现文件上传到fpt,里面一些很简单的操作适合初学者。
Java实现FTP批量大文件上传下载.pdf
Java实现FTP的上传下载功能
用Java实现FTP批量大文件上传下载.doc 用Java实现FTP批量大文件上传下载.doc 用Java实现FTP批量大文件上传下载.doc