- 浏览: 92197 次
- 性别:
- 来自: 天津
文章分类
最新评论
-
yangmeng_3331:
该用户名已存在 写道如果是字符串,是按照 parse 方法中的 ...
javascript时间戳与日期转换 -
该用户名已存在:
如果是字符串,是按照 parse 方法中的规则进行解析。var ...
javascript时间戳与日期转换 -
yangmeng_3331:
shiyiyue513 写道文中有诸多不妥之处。我是初学者,一 ...
Java中的栈,堆和常量池 -
shiyiyue513:
文中有诸多不妥之处。
Java中的栈,堆和常量池
最开始使用jdk自带的rt.jar开发FTP工具类,后来发现中文乱码,本机windows是GBK,工程utf-8的,大概看了下jdk的FtpClient的基类NetworkClient默认输出的编码是ISO8859_1。后来决定使用apache的commons-net.jar来开发。下面是具体代码
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.net.SocketException; import java.util.TimeZone; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPClientConfig; import org.apache.commons.net.ftp.FTPReply; public class FtpTest { private FTPClient ftpClient; /** * 链接ftp * @param ip 地址 * @param port 端口号 * @param user 用户名 * @param password 密码 * @param path 路径 */ public void connectServer(String ip,int port,String user,String password,String path) { try { this.ftpClient = new FTPClient(); FTPClientConfig config = new FTPClientConfig(FTPClientConfig.SYST_NT);//适用的系统 config.setServerTimeZoneId(TimeZone.getDefault().getID());//获取主机默认时区 this.ftpClient.setControlEncoding("GBK"); this.ftpClient.configure(config); this.ftpClient.connect(ip, port); int reply = this.ftpClient.getReplyCode(); //ftp服务器链接响应,已2开头通过 if(!FTPReply.isPositiveCompletion(reply)) { //响应异常断开连接 System.out.println("链接失败!"); this.ftpClient.disconnect(); } this.ftpClient.login(user, password); this.ftpClient.changeWorkingDirectory(path); this.ftpClient.setFileType(FTPClient.FILE_STRUCTURE);//设置文件传输类型 System.out.println("登陆成功,当前所在目录:"+this.ftpClient.printWorkingDirectory()); } catch (SocketException e) { System.out.println("链接FTP服务器失败!"); e.printStackTrace(); } catch (IOException e) { System.out.println("登陆FTP服务器失败!"); e.printStackTrace(); } } /** * 关闭FTP服务器连接 *@data 2014-6-10 下午1:51:40 */ public void closeFtp() { if(null != this.ftpClient && this.ftpClient.isConnected()) { try { boolean rs = this.ftpClient.logout(); if(rs) { System.out.println("退出并关闭FTP服务器连接!"); } } catch (IOException e) { e.printStackTrace(); System.out.println("退出FTP服务器发生异常!"); } finally { try { this.ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); System.out.println("强制关闭异常的FTP服务器链接!"); } } } } /** * 下载文件,测试通过2GB大小文件,具体看网络环境。 * @param localFilePath 本地路径及文件名 * @param remoteFileName ftp文件目录及文件名,如/test.doc.目录前必须有/否则会找不到文件 * @return */ public boolean downloadFile(String localFilePath, String remoteFileName) { BufferedOutputStream outStream = null; boolean rs = false; try { outStream = new BufferedOutputStream(new FileOutputStream(localFilePath)); rs = this.ftpClient.retrieveFile(remoteFileName, outStream); System.out.println("文件下载成功!"); } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println("本地文件未找到!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件下载发生异常!"); } finally { if(outStream != null) { try { outStream.flush(); outStream.close(); } catch (IOException e) { e.printStackTrace(); System.out.println("文件传输关闭异常!"); } } } return rs; } /** * 下载文件,测试通过2GB大小文件,具体看网络环境。 * @param localFile 本地文件 * @param remoteFileName FTP服务器文件目录及文件名 * @return */ public boolean downloadFile(File localFile, String remoteFileName) { BufferedOutputStream outStream = null; FileOutputStream outStr = null; boolean rs = false; try { outStr = new FileOutputStream(localFile); outStream = new BufferedOutputStream(outStr); rs = this.ftpClient.retrieveFile(remoteFileName, outStream); System.out.println("文件下载成功!"); } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println("本地文件未找到!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件下载发生异常!"); } finally { try { if(null != outStream) { outStream.flush(); outStream.close(); } } catch (Exception e) { e.printStackTrace(); System.out.println("文件传输关闭异常!"); } finally { if (null != outStr) { try { outStr.flush(); outStr.close(); } catch (IOException e) { e.printStackTrace(); System.out.println("文件输出关闭异常!"); } } } } return rs; } /** * 文件上传 * @param localFilePath 文件本地路径 * @param remoteFileName 上传到FTP服务器路径级文件名 * @return */ public boolean uploadFile(String localFilePath, String remoteFileName) { BufferedInputStream inStream = null; boolean rs = false; try { inStream = new BufferedInputStream(new FileInputStream(localFilePath)); rs = this.ftpClient.storeFile(remoteFileName, inStream); System.out.println("文件上传成功!"); } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println("本地文件未找到!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件上传发生异常!"); } finally { if (inStream != null) { try { inStream.close(); } catch (IOException e) { e.printStackTrace(); System.out.println("文件传输关闭异常!"); } } } return rs; } /** * 文件上传 * @param localFile 本地文件 * @param remoteFileName 上传到FTP服务器路径级文件名 * @return */ public boolean uploadFile(File localFile, String remoteFileName) { BufferedInputStream inStream = null; boolean rs = false; try { inStream = new BufferedInputStream(new FileInputStream(localFile)); rs = this.ftpClient.storeFile(remoteFileName, inStream); System.out.println("文件上传成功!"); } catch (FileNotFoundException e) { e.printStackTrace(); System.out.println("本地文件未找到!"); } catch (IOException e) { e.printStackTrace(); System.out.println("文件上传发生异常!"); } finally { if (inStream != null) { try { inStream.close(); } catch (IOException e) { e.printStackTrace(); } } } return rs; } /** * 变更工作目录 * @param dir 需变更到的工作目录 */ public void changeDir(String dir) { try { this.ftpClient.changeWorkingDirectory(dir); System.out.println("当前工作目录为:" + dir); } catch (IOException e) { e.printStackTrace(); System.out.println("变更工作目录:" + dir + "时出错!"); } } /** * 返回上级目录 */ public void toParentDir() { try { this.ftpClient.changeToParentDirectory(); System.out.println("成功返回上级目录!"); System.out.println("当前工作目录为:" + this.ftpClient.printWorkingDirectory()); } catch (IOException e) { e.printStackTrace(); System.out.println("返回上级目录时出错!"); } } /** * 查询某目录下所有下文件目录 * @return */ public String[] getListFiles(String path){ String files[] = null; try { if (null == path || "".equals(path)) { path = "/"; } files = this.ftpClient.listNames(path); } catch (IOException e) { e.printStackTrace(); } return files; } public static void main(String[] args) { try { FtpTest ftp = new FtpTest(); ftp.connectServer("192.168.1.133", 21, "ftpAdmin", "admin", "/"); // ftp.downloadFile("d://LOL_V3.1.2.0-V3.1.2.1_PATCH.exe", "/LOL_V3.1.2.0-V3.1.2.1_PATCH.exe"); // ftp.downloadFile(new File("d://test.zip"), "/test.zip"); // ftp.uploadFile("d://test.zip", "/ym/test.zip"); // ftp.uploadFile(new File("d://test.zip"), "/test.zip"); ftp.changeDir("/fasdfasym"); // ftp.toParentDir(); // String[] files = ftp.getListFiles("null"); String[] files = ftp.getListFiles("/ym"); for (String s : files) { System.out.println(s); } ftp.closeFtp(); } catch (Exception e) { e.printStackTrace(); } } }
- jar.zip (2.7 MB)
- 下载次数: 6
发表评论
-
使用Axis2搭建web Service
2014-06-06 09:59 12871、首先下载需要的一些相关axis2.zip及jar包 ... -
使用Axis1搭建web Service
2014-06-05 12:25 645首先创建一个demo,然后建一个AxisService ... -
org.apache.commons.beanutils.PropertyUtils使用
2013-08-06 10:51 1471org.apache.commons.beanutils.Pr ... -
使用apache的ant.jar进行压缩/解压缩文件
2013-06-28 11:43 2061windows系统默认字符集为 ... -
json-lib使用JSONObject与JSONArray
2013-06-08 16:54 8691.从Object到String 要先用Object对象构造 ... -
java字符串与unicode转换
2013-06-07 13:27 722/** * 字符串转化为unicod ... -
给定一个接口返回这个接口所有实现类
2013-02-28 09:15 1839package com.dobn.bdgcgl.test; ... -
单例模式
2013-02-27 16:39 762概念:确保一个类只有一个实例,并提供一个全局访问点来获取该实例 ... -
利用java反射实现两个具有相同属性bean赋值
2012-11-22 16:19 2293package com.dobn.bdgcgl.utils ... -
JPA 实体关系注解
2012-10-15 15:44 15431.单向一对一 @OneToMany( ... -
[转]Hibernate的复杂用法HibernateCallback
2012-09-28 10:26 1252HibernateTemplate还提供一种更加灵活的方式来操 ... -
多线程基础
2012-05-03 00:38 768线程类Thread 方法currentThread()获得一 ... -
Java编程的三十个基本规则
2011-11-15 21:37 696(1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母 ... -
Java中的栈,堆和常量池
2011-11-15 21:34 9541.寄存器:最快的存储区, 由编译器根据需求进行分配,我们在程 ...
相关推荐
Apache的FTP库是Java开发中一个非常实用的工具,它主要包含了两个核心的JAR包:`commons-net-1.4.1.jar`和`jakarta-oro-2.0.8.jar`。这两个包提供了丰富的功能,允许开发者在Java应用中实现FTP(文件传输协议)的...
总结,Apache Commons Net 3.6是Java开发中处理FTP操作的强大工具,它提供了一套全面的API,使得FTP文件的上传下载、读写等操作变得简单易行。通过深入研究源码,开发者不仅可以提升代码质量,还能更好地理解和应对...
《Apache Commons Net FTP库在Java开发中的应用》 Apache Commons Net是一个Java库,它提供了对各种网络协议的支持,其中就包括FTP(File Transfer Protocol)协议。在这个特定的案例中,我们关注的是`commons-...
Apache Commons Net库提供了一整套用于网络编程的类和实用程序,涵盖了FTP、Telnet、NNTP、SMTP等多种网络协议,以及TCP套接字、UDP套接字和日期转换等通用工具。这个库的目的是简化Java中的网络编程,使开发者能够...
在Java项目中引入"commons-net-3.2.jar",可以通过Maven或Gradle依赖管理工具,或者直接将jar文件添加到项目的类路径中。然后,开发者可以创建对应协议的客户端对象,调用其提供的方法来执行网络操作。例如,使用...
Apache Commons Net 是一个由Apache软件基金会开发的Java库,主要用于网络协议的实现。在这个版本中,我们聚焦于"commons-net-1.4.1.jar",这是一个专注于FTP(文件传输协议)功能的组件。该库为Java开发者提供了...
《Apache Commons Net 3.3:FTP开发利器详解》 Apache Commons Net库是Apache软件基金会的一个项目,专注于网络协议的实现,尤其是FTP(文件传输协议)相关的功能。在这个3.3版本的jar包中,开发者可以找到一系列...
此外,Apache Commons Net还提供了实用工具类,如IP地址操作、TCP连接管理、时间戳协议(NTP)和 Telnet 客户端。这些工具可以帮助开发者简化网络编程,处理网络相关的底层细节。 在使用`commons-net-3.6.jar`时,...
在实际开发中,可能还需要处理异常,如网络错误、认证失败等,并且为了提高代码的可读性和复用性,通常会将这些步骤封装到单独的FTP服务类或工具类中。 总结来说,`commons-net-1.4.1.jar` 和 `jakarta-oro-2.0.8....
这个JAR文件包含了Apache Commons Net库的所有类和资源,可以直接被Java项目引用和使用。 **Apache Commons Net库知识点详解:** Apache Commons Net库是Java开发者在处理网络通信时的重要工具,它提供了以下关键...
这个库是Apache Commons Net项目的一部分,它提供了一系列的类和方法来帮助开发者处理各种网络协议,包括FTP、TFTP、NNTP、SMTP等。在Java中,使用这样的第三方库可以简化网络编程,尤其是文件传输的复杂性。 描述...
7. **commons-net-3.0.1.jar**: 包含了各种网络协议(如 FTP、Telnet、NNTP 等)的实现,提供了网络通信的基本工具,对于网络编程和文件传输非常有用。 8. **commons-primitives-1.0.jar**: 提供了基本类型(如 int...
在IT行业中,库和框架是开发者的得力助手,它们提供了丰富的...总的来说,`commons-logging-1.2.jar`、`commons-vfs2-2.2.jar`和`jxl.jar`都是Java开发中非常实用的工具,它们极大地丰富了Java生态,并提升了开发效率。
Apache Commons Net是Apache软件基金会的一个项目,提供了一系列的网络实用工具和协议实现,包括FTP。`commons-net-3.6.jar` 是这个项目的库文件,包含了完整的FTP客户端API和其他网络相关的功能,如TCP套接字、NNTP...
在Java开发中,Apache Commons Net库是一个非常重要的工具集,它提供了多种网络协议的实现,包括FTP(文件传输协议)。`commons-net-2.2.jar`是这个库的一个版本,其中包含了FTP文件上传功能的源代码。本文将深入...
总结,`commons-net-2.0.jar`作为Java FTP操作的重要工具,极大地简化了FTP通信的代码实现,使得开发者能够专注于业务逻辑,而无需关心底层网络协议的细节。通过学习和使用这个库,我们可以高效、稳定地进行文件的...
FTP连接jar包是一类专门用于处理FTP通信的Java库,它们可以帮助开发者简化FTP客户端的实现过程。本篇将详细介绍标题中提及的三个jar包——"commons-net-3.3.jar"、"jakarta-oro-2.0.8.jar"和"javacsv.jar",以及它们...
在Java编程中,Apache Commons Net库提供了一系列工具类来处理各种网络协议,其中包括FTP(文件传输协议)。在本文中,我们将深入探讨如何使用`org.apache.commons.net.ftp.FTPClient`包来实现简单的文件下载功能。...