java ftpclient上传txt文件

  •   import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp.FTPReply;import java.io.*;import java.net.MalformedURLException;
    
  • 工具类

         public class FtpUtils {//ftp服务器地址public String hostname = "192.3.81.100";//ftp服务器端口号默认为21public Integer port = 21 ;//ftp登录账号public String username = "Admin";//ftp登录密码public String password = "xxx";public static FTPClient ftpClient = null;//本地字符编码static String LOCAL_CHARSET = "UTF-8";// FTP协议里面,规定文件名编码为iso-8859-1static String SERVER_CHARSET = "ISO-8859-1";/*** 初始化ftp服务器*/public void initFtpClient() {ftpClient = new FTPClient();ftpClient.setControlEncoding(LOCAL_CHARSET);try {System.out.println("connecting...ftp服务器:"+this.hostname+":"+this.port);ftpClient.connect(hostname, port); //连接ftp服务器ftpClient.login(username, password); //登录ftp服务器int replyCode = ftpClient.getReplyCode(); //是否成功登录服务器if(!FTPReply.isPositiveCompletion(replyCode)){System.out.println("connect failed...ftp服务器:"+this.hostname+":"+this.port);}System.out.println("connect successful...ftp服务器:"+this.hostname+":"+this.port);ftpClient.sendCommand("OPTS UTF8","ON");}catch (MalformedURLException e) {e.printStackTrace();}catch (IOException e) {e.printStackTrace();}}/*** 上传文件* @param pathname ftp服务保存地址* @param fileName 上传到ftp的文件名*  @param originfilename 待上传文件的名称(绝对地址) ** @return*/public boolean uploadFile( String pathname, String fileName,String originfilename){boolean flag = false;InputStream inputStream = null;try{System.out.println("开始上传文件");inputStream = new FileInputStream(new File(originfilename));initFtpClient();ftpClient.enterLocalPassiveMode();ftpClient.setFileType(FTPClient.BINARY_FILE_TYPE);CreateDirecroty(pathname);ftpClient.makeDirectory(pathname);ftpClient.changeWorkingDirectory(pathname);ftpClient.storeFile(new String(fileName.getBytes(LOCAL_CHARSET),SERVER_CHARSET), inputStream);//            ftpClient.storeFile(fileName, inputStream);inputStream.close();ftpClient.logout();flag = true;System.out.println("上传文件成功");}catch (Exception e) {System.out.println("上传文件失败");e.printStackTrace();}finally{if(ftpClient.isConnected()){try{ftpClient.disconnect();}catch(IOException e){e.printStackTrace();}}if(null != inputStream){try {inputStream.close();} catch (IOException e) {e.printStackTrace();}}}return flag;}//改变目录路径public boolean changeWorkingDirectory(String directory) {boolean flag = true;try {flag = ftpClient.changeWorkingDirectory(directory);if (flag) {System.out.println("进入文件夹" + directory + " 成功!");} else {System.out.println("进入文件夹" + directory + " 失败!开始创建文件夹");}} catch (IOException ioe) {ioe.printStackTrace();}return flag;}//创建多层目录文件,如果有ftp服务器已存在该文件,则不创建,如果无,则创建public boolean CreateDirecroty(String remote) throws IOException {boolean success = true;String directory = remote + "/";// 如果远程目录不存在,则递归创建远程服务器目录if (!directory.equalsIgnoreCase("/") && !changeWorkingDirectory(new String(directory))) {int start = 0;int end = 0;if (directory.startsWith("/")) {start = 1;} else {start = 0;}end = directory.indexOf("/", start);String path = "";String paths = "";while (true) {String subDirectory = new String(remote.substring(start, end).getBytes("GBK"), "iso-8859-1");path = path + "/" + subDirectory;if (!existFile(path)) {if (makeDirectory(subDirectory)) {changeWorkingDirectory(subDirectory);} else {System.out.println("创建目录[" + subDirectory + "]失败");changeWorkingDirectory(subDirectory);}} else {changeWorkingDirectory(subDirectory);}paths = paths + "/" + subDirectory;start = end + 1;end = directory.indexOf("/", start);// 检查所有目录是否创建完毕if (end <= start) {break;}}}return success;}//创建目录public boolean makeDirectory(String dir) {boolean flag = true;try {flag = ftpClient.makeDirectory(dir);if (flag) {System.out.println("创建文件夹" + dir + " 成功!");} else {System.out.println("创建文件夹" + dir + " 失败!");}} catch (Exception e) {e.printStackTrace();}return flag;}/** * 下载文件 ** @param pathname FTP服务器文件目录 ** @param filename 文件名称 ** @param localpath 下载后的文件路径 ** @return */public  boolean downloadFile(String pathname, String filename, String localpath){boolean flag = false;OutputStream os=null;try {System.out.println("开始下载文件");initFtpClient();//切换FTP目录ftpClient.changeWorkingDirectory(pathname);FTPFile[] ftpFiles = ftpClient.listFiles();for(FTPFile file : ftpFiles){if(filename.equalsIgnoreCase(file.getName())){File localFile = new File(localpath + "/" + file.getName());os = new FileOutputStream(localFile);ftpClient.retrieveFile(file.getName(), os);os.close();}}ftpClient.logout();flag = true;System.out.println("下载文件成功");} catch (Exception e) {System.out.println("下载文件失败");e.printStackTrace();} finally{if(ftpClient.isConnected()){try{ftpClient.disconnect();}catch(IOException e){e.printStackTrace();}}if(null != os){try {os.close();} catch (IOException e) {e.printStackTrace();}}}return flag;}//判断ftp服务器文件是否存在private boolean existFile(String path) throws IOException {boolean flag = false;FTPFile[] ftpFileArr = ftpClient.listFiles(path);if (ftpFileArr.length > 0) {flag = true;}return flag;}}
    
  • 工具调用

        FtpUtils ftp =new FtpUtils();ftp.uploadFile("/files/", "mylogs.txt", "D://mylogs.txt");//ftp.uploadFile("/FTP服务目录/", "文件名", “文件路径与文件名”);
    

java ftpclient上传txt文件相关推荐

  1. OSS上传txt文件乱码问题

    OSS上传txt文件乱码问题 设置文件的元信息,将文件的Content-type设置为:txt/plain;charset=utf-8就行了 public static void main(Strin ...

  2. java下载上传远程文件

    利用的是SMB协议从远程服务器下载上传文件 可以在本地做一个共享文件夹放点东西来测试下 这是用到的jar包[jcifs-1.2.3.jar],不能设置0积分有点可惜.(https://download ...

  3. java实现上传_文件上传(java)

    最近看了一本书上的代码,代码的主要功能是实现文件的上传.但是,当我运行代码的时候竟然报错了.(我用的IDEA).有错就解决吧.以下是我遇到的几个错误. 废话不多说先附上源代码. UploadServl ...

  4. php如何上传txt文件,并且读取txt文件

    1.创建目录如下 upload文件夹是用来暂时存放上传的文件,方便读取和写等操作,upload.html是前端上传文件页面,upload.php是处理页面 upload.html <html&g ...

  5. java http 上传大文件上传_java实现大文件的上传

    最近项目经理逼着让偶做树的展开,表嵌套表,可惜偶刚参加工作,水平低,这不在查资料嘛,可是不多久就传来了经理的叫嚣声,这么简单的东西,都一天了,你还没做完..................,哎真是郁闷 ...

  6. java 分块上传_Java 文件分块上传客户端和服务器端源代码

    本博客介绍如何进行文件的分块上传.本文侧重介绍客户端,服务器端请参考博客<Java 文件分块上传服务器端源代码>.建议读者朋友在阅读本文代码前先了解一下 MIME 协议. 所谓分块上传并非 ...

  7. java 文件上传乱码_java上传txt文件,出现中文乱码

    public String uploadBook(MultipartFile file, Book book, HttpServletRequest request) { try{ String li ...

  8. Apache FTPClient上传下载文件

    使用Java开发FTPClient,完成文件的上传下载 步骤如下 第一步:导入maven依赖jar包 <dependencies><!--FtpClient所在的包-->< ...

  9. java websocket 上传大文件,使用java websocket API和Javascript上传文件

    我正在学习websocket并且已经使用websocket / json完成了聊天程序.但我坚持上传ATM的文件.任何建议&回答会很感激. 服务器端: package websocket; i ...

最新文章

  1. 373. Find K Pairs with Smallest Sums (java,优先队列)
  2. Oracle针对SCOTT下EMP表的练习题
  3. hdu4995 (不错的小模拟)
  4. 【放置奇兵】封印之地各阵营boss和小怪属性
  5. mysql计算秒_如何在MySQL中基于秒计算时间?
  6. Codeforces Round #359 div2
  7. 如何编写好的C main函数
  8. 二、Sql Server 基础培训《进度2-关于主键(知识点学习)》
  9. Struts2理解--动态方法和method属性及通配符_默认Action
  10. C语言中extern 全局变量,二进制文件与内存,static,const对栈,内存的使用情况
  11. svn服务端安装、迁移教程、Eclipse切换svn连接库
  12. DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)
  13. 好用的截图、贴图、长截图(滚动截图)工具(MacOS、Windows)
  14. kafka分布式消息系统集群搭建-- 详细过程
  15. 一个特别好用的免费json数据API接口--特别推荐
  16. Linux深度学习框架安装
  17. 如何用photoshop做24色环_教大家用PS画色轮图
  18. 使用PyInstaller脚本打包时提示Unable to open icon file 的一种情况
  19. html b5纸尺寸,A5纸的尺寸多大(各种标准纸张大小A1,A2,A3,A4纸的尺寸)
  20. python画笔属性_python 画图 turtle 模块介绍之(一)

热门文章

  1. 第一章:Java概述与安装
  2. 解决windows10下无法安装.net framework 3.5,错误代码0x800F081F
  3. 蓝桥杯--算法提高 幸运顾客(java)
  4. C# 实例化的执行顺序
  5. lvs加MySQL读写分离_mysql高可用架构方案之二(keepalived+lvs+读写分离+负载均衡)
  6. 适配器-Adapter
  7. Cesium地图服务
  8. 人生的十二句精典领悟
  9. 量化定投,工薪族逆袭之路
  10. C++ 实现 力扣1039. 多边形三角剖分的最低得分