/**

* Description: 从FTP服务器下载文件

* @Version1.0 Jul 27, 2008 5:32:36 PM by 崔红保(cuihongbao@d-heaven.com)创建

* @param url FTP服务器hostname

* @param port FTP服务器端口

* @param username FTP登录账号

* @param password FTP登录密码

* @param remotePath FTP服务器上的相对路径

* @param fileName 要下载的文件名

* @param localPath 下载后保存到本地的路径

* @return

*/

public static boolean downFile(String ip, int port,String username, String password, String remotePath,String fileName,String localPath) {

boolean success = false;

FTPClient ftpc = new FTPClient();

String LOCAL_CHARSET="GBK";

try {

logger.info("连接ftp----");

//ftpc.setCharset(Charset.forName("GBK"));

ftp中文编码设置

ftpc.setControlEncoding("GBK");

FTPClientConfig conf = new FTPClientConfig(FTPClientConfig.SYST_UNIX);

conf.setServerLanguageCode("zh");

ftpc.configure(conf);

int reply;

ftpc.connect(ip,port);

logger.info("--------------连接ftp成功--------------");

//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

ftpc.login(username, password);//登录

reply = ftpc.getReplyCode();

if (!FTPReply.isPositiveCompletion(reply)) {

ftpc.disconnect();

return success;

}

logger.info("登录ftp成功!!!!!!!!!!!!!!");

ftpc.changeWorkingDirectory(remotePath);//转移到FTP服务器目录

ftpc.enterLocalPassiveMode(); //设置被动模式

ftpc.setFileType(ftpc.BINARY_FILE_TYPE); //设置下载文件为二进制模式

ftpc.setFileTransferMode(ftpc.STREAM_TRANSFER_MODE); ///传输文件为流的形式

logger.info("切换路径:"+remotePath);

FTPFile[] fs = ftpc.listFiles();

判断本地的日期路径是否存在

File file = new File(localPath);

//判断文件夹是否存在,如果不存在则创建文件夹

if (!file.exists()) {

file.mkdir();

}

///循环下载

for(FTPFile ff:fs){

logger.info("文件名称:"+ff.getName());

File localFile = new File(localPath+"/"+ff.getName());

OutputStream is = new FileOutputStream(localFile);

ftpc.retrieveFile(new String(ff.getName().getBytes("utf-8"), "GBK"), is);

is.close();

logger.info("下载完毕----");

}

ftpc.logout();

success = true;

} catch (IOException e) {

//e.printStackTrace();

logger.error("ftp下载报错", e);

} finally {

if (ftpc.isConnected()) {

try {

ftpc.disconnect();

} catch (IOException ioe) {

}

}

}

return success;

}

java ftp 设置编码_java ftp上传下载,下载文件编码设置相关推荐

  1. java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表

    全栈工程师开发手册 (作者:栾鹏) java教程全解 java实现ftp连接.登陆.上传.下载.删除文件.获取目录.文件列表等操作. 本地调试,首先需要在本机上开启ftp服务和ftp站点. 测试代码 ...

  2. 模拟部署FTP服务器并提供文件的上传及下载

    FTP(File Transfer Protocol:文件传输协议)是TCP/IP协议组中的协议之一,主要是提供文件共享服务. 数据端口20:用于传输数据: 控制端口21:用于传输指令: 操作环境:V ...

  3. java chsftp.get 追加_Java SFTP上传使用JSch,但如何覆盖当前文件?

    我试图使用JSch将两个文件上传到具有SFTP的服务器.如果目录为空,则上传文件可以正常工作,但我想一遍又一遍地上传相同的文件(只需更改内部的id),但是我无法弄清楚如何做到这一点. JSch中有一些 ...

  4. java csv 导入数据库_java – 如何上传CSV文件然后自动将数据插入数据库?

    我有基于 Java的Spring MVC应用程序,它也使用Spring安全性.我正在使用hibernate作为此Web应用程序的ORM工具. 以下是我的要求 – 用户可以使用Web浏览器上传CSV文件 ...

  5. java pdf 首页 缩略图_Java中将上传的文件首页生成缩略图(先将上传的文件转成pdf,然后将pdf转成jpg)...

    1.首先将上传的非jpg,pdf格式的文件转成pdf,这个是采用OpenOffice进行转的,具体代码如下: private void officeToPdf(){ OpenOfficeConnect ...

  6. java word上传下载_java poi 上传与下载word文件

    java编程要实现对word的操作没有vb那种编程语言来得容易,得借助一些开源组件,其中就包括jacob.poi等, 而poi应用得最为广泛,对word2003和2007的读和写word操作都十分方便 ...

  7. java实现上传图片代码_Java图片上传实现代码

    本文实例为大家分享了java图片上传代码,供大家参考,具体内容如下 import java.io.*; import java.net.*; /* *发送端 */ class picsend { pu ...

  8. java 视频预览_java在上传视频时生成预览图

    在圣品上传时往往需要生成一张预览图(缩略图),如果在非特殊情况下让用户单独上传,会造成工作压力,此时可以用视频中某一帧作为封面图,实现方式如下: public class ImageUtil { /* ...

  9. java ajax上传图片插件_java图片上传并预览,前台用jQuery插件AjaxFileUpload,后台用FileUtils.copyFile....

    个人笔记,以备后用. 表体代码: 查看图片 js代码(记得要引入jquery库和ajaxfileupload库): //上传文件id号 function fileUpload(uploadFileId ...

  10. 从FTP服务器进行文件的上传和下载

    .net 2.0(c#)下简单的FTP应用程序 本文使用.net 2.0(c#)来实现一般的FTP功能 介绍 微软的.net framework 2.0相对于1.x来说增加了对FTP的支持.以前为了符 ...

最新文章

  1. Oracle EBS R12 运行adadmin 安装中文语言包过程中意外中断后的处理
  2. 南方医科大学珠江医院检验医学部生物信息分析师招聘启示
  3. “未卜先知”、“自学成才”:GANs奇思妙想TOP10
  4. C指针原理(29)-Ncurses-文本终端的图形
  5. minio下载及安装:win linux平台
  6. wxWidgets:wxBookCtrl 概述
  7. python学习之subprocess模块
  8. Android-TextView跑马灯效果
  9. RedisConf2018记录--Day 1 sessions
  10. 小数点进位 oracle,使用多个小数点(。)对Oracle中的记录进行排序
  11. Linux centosVMware shell编程 for循环、while循环、break跳出循环、continue结束本次循环、exit退出整个脚本...
  12. 从《网管员必读》系列丛书获奖看读者的真正需求——成功原因分析(一)
  13. 关于Mac能连上Wi-Fi但无法上网的问题?方法来啦
  14. csdn 登录经常卡住无法登录
  15. 微信小号来了,微信小号怎么申请(内附微信小号注册说明)
  16. 啊,原来申请数字证书这么简单
  17. 软件测试中的批量交易测试
  18. Duplicate Cleaner - 重复文件 / 相似文件扫描 - 构建深度学习标注数据集
  19. MFC有理二次Bezier曲线精确拟合圆
  20. iOS10从app跳转到WiFi设置界面

热门文章

  1. 相同字符串,但是equals为false?我多年的java白学了吗?
  2. 深度学习100例 | 第3天:交通标志识别 - PyTorch实现
  3. 2016年计算机基础知识试题及答案,2016年计算机二级基础知识试题及答案
  4. 计算机二级考试2021考试时间黑龙江,2021年3月黑龙江计算机等级考试时间是什么时候...
  5. Android编译错误“SSL error when connecting to the Jack server. Try ‘jack-diagnose‘”
  6. 野三坡龙门天关部分图片
  7. Java版知识付费源码 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台
  8. 重磅推出:分享阿里云大学Linux学习路线链接
  9. airpodspro窃听模式_苹果 AirPods Pro 的“通透模式”和“关闭”有什么区别?
  10. 公钥加密如何确保数据的完整性