JDK1.7以上javaFTP上传删除文件的实现方法
时间:2019-04-10
本文章向大家介绍JDK1.7以上javaFTP上传删除文件的实现方法,主要包括JDK1.7以上javaFTP上传删除文件的实现方法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
实例如下:
packagecom.itv.launcher.util; importjava.io.File; importjava.io.FileInputStream; importjava.io.FileNotFoundException; importjava.io.IOException; importjava.net.InetSocketAddress; importjava.util.Properties; importjava.util.StringTokenizer; importsun.net.TelnetOutputStream; importsun.net.ftp.FtpClient; importsun.net.ftp.FtpProtocolException; /** * FTP上传工具类 * * @author yanzhou * @version v1.0 */ publicclass FTPUtil { privatestatic FtpClient ftpClient = null; privatestatic final String url; privatestatic final int port; privatestatic final String user; privatestatic final String password; privatestatic final String remoteFilePath; static{ Properties FTPPro = ReadFTPProperties.getMsgFromPro(); url = FTPPro.getProperty("FTP_URL"); port = Integer.parseInt(FTPPro.getProperty("FTP_PORT")); user = FTPPro.getProperty("FTP_USER"); password = FTPPro.getProperty("FTP_PASSWORD"); remoteFilePath = FTPPro.getProperty("FTP_REMOTE_FILEPATH"); } /** * 链接FTP * @throws FtpProtocolException */ privatestatic void connectFTP() throwsFtpProtocolException { try{ ftpClient = FtpClient.create(); ftpClient.connect(newInetSocketAddress(url, port)); ftpClient.login(user, password.toCharArray()); ftpClient.setBinaryType(); if(!"".equals(remoteFilePath) && remoteFilePath != null) { ftpClient.changeDirectory(remoteFilePath); } }catch(IOException e) { e.printStackTrace(); } } /** * 关闭FTP链接 */ publicstatic void closeFTP() { try{ if(ftpClient != null) { ftpClient.close(); } }catch(IOException e) { e.printStackTrace(); } } /** * 上传文件到FTP * @param file file文件,struts2从页面得到的File类型 * @param filePath 要保存在FTP上的路径(文件夹) * @param fileName 文件名(test001.jpg) * @return 文件是否上传成功 * @throws Exception */ publicstatic boolean upload(File file, String filePath, String fileName) { TelnetOutputStream to = null; FileInputStream fi = null; filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath; try{ if(file != null) { connectFTP(); if(!isDirExist(filePath.replace("\\","/"))) { createDir(filePath.replace("\\","/")); ftpClient.changeDirectory(filePath.replace("\\","/")); } fi = newFileInputStream(file); to = (TelnetOutputStream) ftpClient.putFileStream(fileName, true); byte[] bytes = newbyte[1024]; inti = fi.read(bytes); while(i != -1) { to.write(bytes); i = fi.read(bytes); } } returntrue; }catch(FileNotFoundException e1) { returnfalse; }catch(IOException e2) { returnfalse; }catch(Exception e) { returnfalse; }finally{ if(fi != null) { try{ fi.close(); }catch(IOException e) { e.printStackTrace(); } } if(to != null) { try{ to.flush(); to.close(); }catch(IOException e) { e.printStackTrace(); } } closeFTP(); } } /** * 删除FTP制定目录下的文件 * @param filePath 文件在FTP存储的路径 * @param fileName 要删除的文件名称 * @return 是否删除成功 */ publicstatic boolean deleteFileFtp(String filePath, String fileName){ try{ connectFTP(); filePath = remoteFilePath + Constants.FILE_SEPARATOR + filePath + Constants.FILE_SEPARATOR; if(!isDirExist(filePath.replace("\\","/"))) { returnfalse; } ftpClient.changeDirectory(filePath.replace("\\","/")); ftpClient.deleteFile(fileName); returntrue; }catch(Exception e) { e.printStackTrace(); returnfalse; }finally{ closeFTP(); } } /** * 检查文件夹是否存在 * * @param dir * @param ftpClient * @return */ privatestatic Boolean isDirExist(String dir) { try{ ftpClient.changeDirectory(dir); }catch(Exception e) { returnfalse; } returntrue; } /** * 创建文件夹 * * @param dir * @param ftpClient * @throws Exception */ privatestatic void createDir(String dir) throwsException { ftpClient.setAsciiType(); StringTokenizer s = newStringTokenizer(dir, "/");// sign s.countTokens(); String pathName = ""; while(s.hasMoreElements()) { pathName = pathName + "/"+ (String) s.nextElement(); try{ ftpClient.makeDirectory(pathName); }catch(Exception e) { e = null; } } ftpClient.setBinaryType(); } }
2. 常量类,系统的路径分隔符
packagecom.itv.launcher.util; publicinterface Constants { //路径分隔符 publicstatic String FILE_SEPARATOR = System.getProperty("file.separator"); }
3. FTP链接的配置properties文件,包括用户名密码一些信息
#FTP的IP地址 FTP_URL=127.0.0.1 #FTP端口号 FTP_PORT=1234 #用户名 FTP_USER=yanzhou #密码 FTP_PASSWORD=abcdefg12345 #FTP账号目录 FTP_REMOTE_FILEPATH=
以上这篇JDK1.7以上javaFTP上传删除文件的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
- 玩得一手好注入之order by排序篇
- [Cake] 1. CI中的Cake
- Docker镜像导致centos-root根分区容量爆满
- 分布式文件系统FastDFS动态扩容
- 高可用高性能分布式文件系统FastDFS实践Java程序
- MobileNet教程:用TensorFlow搭建在手机上运行的图像分类器
- Vagrant share浅析
- 空间金字塔池化(Spatial Pyramid Pooling, SPP)原理和代码实现(Pytorch)
- 批量下载Coursera及其他场景上的文件
- 深度学习动手入门:GitHub上四个超棒的TensorFlow开源项目
- [产品与技术] Flight data recorder
- [技术与产品] Bower & Brunch
- 计算机视觉识别简史:从 AlexNet、ResNet 到 Mask RCNN
- [技术产品] 用node-webkit做桌面应用
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Nginx 负载均衡配置(实战教程)
- 教懂你什么是 “ 流量劫持 ”
- SAP Spartacus中使用到的Angular ModuleWithProviders类型
- 架构设计 | 基于消息中间件,图解柔性事务一致性
- 结构与算法(02):队列和栈结构
- 用Gaussian寻找圆锥交叉点
- kubernetes用户安全管理模型简析
- Unity3D网络通讯(一)--Asp.Net Core WebApi创建发布注意事项
- Unity3D网络通讯(二)--UnityWebRequest及JsonUtility请求Http Restful
- CS学习笔记 | 20、通过Socks转发的方法
- 构建的抽象
- 低成本个人建站系列二 —— 使用 Hexo+GitHub 搭建个人免费博客
- 42图揭秘,「后端技术学些啥」
- R-ggTimeSeries | ggplot2: 热力日历图
- R-wordcloud: 词云图