详细介绍Java FTP上传下载删除功能实例代码
这篇文章主要介绍了Java FTP上传下载删除功能实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
在没给大家上完整代码之前先给大家说下注意点:
FTP上传下载,容易出现乱码,记得转换
package com.yinhai.team.action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import org.apache.commons.net.ftp.FTPReply; public class FavFTPUtil { /** * 上传文件(可供Action/Controller层使用)未测试 * @param hostname FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP登录帐号 * @param password FTP登录密码 * @param pathname FTP服务器保存目录 * @param fileName 上传到FTP服务器后的文件名称 * @param inputStream 输入文件流 * @return */ public static boolean uploadFile(String hostname, int port, String username, String password, String pathname, String fileName, InputStream inputStream){ boolean flag = false; FTPClient ftpClient = new FTPClient(); ftpClient.setControlEncoding("UTF-8"); try { //连接FTP服务器 ftpClient.connect(hostname, port); //登录FTP服务器 ftpClient.login(username, password); //是否成功登录FTP服务器 int replyCode = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(replyCode)){ return flag; } ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE); ftpClient.makeDirectory(pathname); ftpClient.changeWorkingDirectory(pathname); ftpClient.storeFile(fileName, inputStream); inputStream.close(); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally{ if(ftpClient.isConnected()){ try { ftpClient.disconnect(); } catch (IOException e) { e.printStackTrace(); } } } return flag; } /** * 上传文件(可对文件进行重命名)未测试 * @param hostname FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP登录帐号 * @param password FTP登录密码 * @param pathname FTP服务器保存目录 * @param filename 上传到FTP服务器后的文件名称 * @param originfilename 待上传文件的名称(绝对地址) * @return */ public static boolean uploadFileFromProduction(String hostname, int port, String username, String password, String pathname, String filename, String originfilename){ boolean flag = false; try { InputStream inputStream = new FileInputStream(new File(originfilename)); flag = uploadFile(hostname, port, username, password, pathname, filename, inputStream); } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 上传文件(不可以进行文件的重命名操作) 未测试 * @param hostname FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP登录帐号 * @param password FTP登录密码 * @param pathname FTP服务器保存目录 * @param originfilename 待上传文件的名称(绝对地址) * @return */ public static boolean uploadFileFromProduction(String hostname, int port, String username, String password, String pathname, String originfilename){ boolean flag = false; try { String fileName = new File(originfilename).getName(); InputStream inputStream = new FileInputStream(new File(originfilename)); flag = uploadFile(hostname, port, username, password, pathname, fileName, inputStream); } catch (Exception e) { e.printStackTrace(); } return flag; } /** * 删除文件 未测试 * @param hostname FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP登录帐号 * @param password FTP登录密码 * @param pathname FTP服务器保存目录 * @param filename 要删除的文件名称 * @return */ public static boolean deleteFile(String hostname, int port, String username, String password, String pathname, String filename){ boolean flag = false; FTPClient ftpClient = new FTPClient(); try { //连接FTP服务器 ftpClient.connect(hostname, port); //登录FTP服务器 ftpClient.login(username, password); //验证FTP服务器是否登录成功 int replyCode = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(replyCode)){ return flag; } //切换FTP目录 ftpClient.changeWorkingDirectory(pathname); ftpClient.dele(filename); ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally{ if(ftpClient.isConnected()){ try { ftpClient.logout(); } catch (IOException e) { } } } return flag; } /** * 下载文件 * @param hostname FTP服务器地址 * @param port FTP服务器端口号 * @param username FTP登录帐号 * @param password FTP登录密码 * @param pathname FTP服务器文件目录 * @param filename 文件名称 * @param localpath 下载后的文件路径 * @return */ public static boolean downloadFile(String hostname, int port, String username, String password, String pathname, String filename, String localpath){ boolean flag = false; FTPClient ftpClient = new FTPClient(); try { //连接FTP服务器 ftpClient.connect(hostname, port); //登录FTP服务器 ftpClient.login(username, password); //验证FTP服务器是否登录成功 int replyCode = ftpClient.getReplyCode(); if(!FTPReply.isPositiveCompletion(replyCode)){ return flag; } //切换FTP目录 boolean b = ftpClient.changeWorkingDirectory(new String(pathname.getBytes(),"ISO-8859-1")); System.out.println(b); FTPFile[] ftpFiles = ftpClient.listFiles(); for(FTPFile file : ftpFiles){ String fName = new String(file.getName().getBytes("iso-8859-1"), "UTF-8"); System.out.println(fName); if(filename.equalsIgnoreCase(fName)){ File localFile = new File(localpath + "/" + fName); OutputStream os = new FileOutputStream(localFile); ftpClient.retrieveFile(file.getName(), os); os.close(); } } ftpClient.logout(); flag = true; } catch (Exception e) { e.printStackTrace(); } finally{ if(ftpClient.isConnected()){ try { ftpClient.logout(); } catch (IOException e) { } } } return flag; } }
以上是详细介绍Java FTP上传下载删除功能实例代码的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Java 8引入了Stream API,提供了一种强大且表达力丰富的处理数据集合的方式。然而,使用Stream时,一个常见问题是:如何从forEach操作中中断或返回? 传统循环允许提前中断或返回,但Stream的forEach方法并不直接支持这种方式。本文将解释原因,并探讨在Stream处理系统中实现提前终止的替代方法。 延伸阅读: Java Stream API改进 理解Stream forEach forEach方法是一个终端操作,它对Stream中的每个元素执行一个操作。它的设计意图是处

胶囊是一种三维几何图形,由一个圆柱体和两端各一个半球体组成。胶囊的体积可以通过将圆柱体的体积和两端半球体的体积相加来计算。本教程将讨论如何使用不同的方法在Java中计算给定胶囊的体积。 胶囊体积公式 胶囊体积的公式如下: 胶囊体积 = 圆柱体体积 两个半球体体积 其中, r: 半球体的半径。 h: 圆柱体的高度(不包括半球体)。 例子 1 输入 半径 = 5 单位 高度 = 10 单位 输出 体积 = 1570.8 立方单位 解释 使用公式计算体积: 体积 = π × r2 × h (4
