摘要:写在前面作为经常使用电脑整理文件的童鞋,应该都使用过从服务器上传下载文件,那么今天就了解下如何通过程序操作服务的文件首先你要知道的,路径,端口,有操作权限的账号和密码导入包这个包用来设置编码,经过测试,不加也可用工具类中主要方法登陆验证
写在前面
作为经常使用电脑整理文件的童鞋,应该都使用过从ftp服务器上传下载文件,那么今天就了解下如何通过java程序操作ftp服务的文件
首先你要知道ftp的ip,路径,端口,有操作权限的账号和密码1 导入jar包
commons-net-3.6.jar
这个jar包用来设置编码,经过测试,不加也可用
2 工具类中主要方法 2.1 登陆ftp/** * 验证登录 * @param ip * @param port * @param name * @param pwd * @return */ public boolean login(String ip,int port, String name, String pwd) { try { ftp = new FTPClient(); ftp.connect(ip, port); System.out.println(ftp.login(name, pwd)); if(!ftp.login(name, pwd)){ return false; } ftp.setCharset(Charset.forName("UTF-8")); ftp.setControlEncoding("UTF-8"); } catch (IOException e) { e.printStackTrace(); return false; } return true; }
注意:获取远程文件目录,上传和下载方法基于登陆方法2.2 获取远程文件目录
/** * 获取ftp某一文件(路径)下的文件名字,用于查看文件列表 * @param ip * @param port * @param name * @param pwd * @param remotedir 远程地址目录 * @return */ public boolean getFilesName(String ip,int port, String name, String pwd, String remotedir) { try { if(!login(ip, port, name, pwd)){ return false; } //获取ftp里面,指定文件夹 里面的文件名字,存入数组中 FTPFile[] files = ftp.listFiles(remotedir); //打印出ftp里面,指定文件夹 里面的文件名字 for (int i = 0; i < files.length; i++) { System.out.println(files[i].getName()); } } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } return true; }2.3 上传文件
/** * 上传文件 方法一 * @param ip * @param port * @param name * @param pwd * @param remotepath 远程地址文件路径 * @param localpath 本地文件路径 * @return */ public boolean putFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } //将本地的 localpath 文件上传到ftp的根目录文件夹下面,并重命名为 remotepath中的名字 return ftp.storeFile(remotepath, new FileInputStream(new File(localpath))); } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } } /** * 上传文件的第二种方法,优化了传输速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 远程地址文件路径 * @param localpath 本地文件路径 * @return */ public boolean putFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } os = ftp.storeFileStream(remotepath); fis = new FileInputStream(new File(localpath)); byte[] b = new byte[1024]; int len = 0; while ((len = fis.read(b)) != -1) { os.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); return false; }finally { this.close(); } return true; }2.4 下载文件
/** * 下载文件 方法一 * @param ip * @param port * @param name * @param pwd * @param remotepath 远程地址文件路径 * @param localpath 本地文件路径 * @return */ public boolean getFileOne(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } //将ftp资源中 remotepath 文件下载到本地目录文件夹下面,并重命名为 localpath 中的名字 return ftp.retrieveFile(remotepath, new FileOutputStream(new File(localpath))); } catch (IOException e) { e.printStackTrace(); return false; }finally{ this.close(); } } /** * 下载文件的第二种方法,优化了传输速度 * @param ip * @param port * @param name * @param pwd * @param remotepath 远程地址文件路径 * @param localpath 本地文件路径 * @return */ public boolean getFileTwo(String ip,int port, String name, String pwd,String remotepath,String localpath) { try { if(!login(ip, port, name, pwd)){ return false; } is = ftp.retrieveFileStream(remotepath); fos = new FileOutputStream(new File(localpath)); byte[] b = new byte[1024]; int len = 0; while ((len = is.read(b)) != -1) { fos.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); return false; }finally { this.close(); } return true; }3 源码
当然上面代码只是重要的部分,如果有问题可去github自行下载 charmsongo
如果有什么更好的方法欢迎留言
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/72614.html
摘要:今天,就为开发者介绍个方便的工具。对开发者来说,是一个非常有用的工具,它提供了超过个有用的函数。该工具检查输入源代码和报告任何违反给定的标准。框架是一个开发的工具。它侧重于安全性和性能,绝对是最安全的开发框架之一。 PHP是为Web开发设计的服务器脚本语言,但也是一种通用的编程语言。超过2.4亿个索引域使用PHP,包括很多重要的网站,例如Facebook、Digg和WordPress。...
摘要:是一个可移植,隔离,快速且功能强大的通用开发环境,适用于,,,,,。每每这样都绝望地将项目放到推荐的标准开发环境上面跑,杀鸡也用牛刀着实不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:是一个可移植,隔离,快速且功能强大的通用开发环境,适用于,,,,,。每每这样都绝望地将项目放到推荐的标准开发环境上面跑,杀鸡也用牛刀着实不痛快。 Laragon is a portable, isolated, fast & powerful universal development environment for PHP, Node.js, Python, Java, Go, Ru...
摘要:消费之后,多线程处理文件导出,生成文件后上传到等文件服务器。前端直接查询并且展现对应的任务执行列表,去等文件服务器下载文件即可。这客户体验不友好,而且网络传输,系统占用多种问题。拓展阅读导出最佳实践框架 产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件。 需求分析 对于 excel 导出,是一个很常见的需求。 最常见的解决方案就是使用 poi 直接同步导出一个 exc...
阅读 2972·2021-10-27 14:16
阅读 693·2021-10-13 09:39
阅读 3668·2021-09-29 09:46
阅读 2085·2019-08-30 15:54
阅读 2596·2019-08-30 15:52
阅读 2993·2019-08-30 15:44
阅读 1102·2019-08-30 15:44
阅读 496·2019-08-30 10:51