当前位置: 首页 > news >正文

凡科网站建设怎么样微做网站

凡科网站建设怎么样,微做网站,电子商务网站建设方案案例,慈溪公司做网站FTP服务之Java操作FTP服务器下载文件的两种方式 文章目录 FTP服务之Java操作FTP服务器下载文件的两种方式1. 使用Apache commons-net工具包1. 引入commons-net依赖2. 操作案例1. 单文件下载2. 切换到指定目录批量下载文件 2. 使用Hutool工具1. 引入依赖2. 操作案例1. 文件下载 …

FTP服务之Java操作FTP服务器下载文件的两种方式

文章目录

  • FTP服务之Java操作FTP服务器下载文件的两种方式
  • 1. 使用Apache commons-net工具包
    • 1. 引入commons-net依赖
    • 2. 操作案例
      • 1. 单文件下载
      • 2. 切换到指定目录批量下载文件
  • 2. 使用Hutool工具
    • 1. 引入依赖
    • 2. 操作案例
      • 1. 文件下载

注意:如果fpt服务中没有建立目录, 则默认文件目录为根目录也即/,否则按具体目录进行操作,如: /demo
FTP服务搭建查看博文 FTP服务之WindowsServer2019中搭建私有FTP服务器

1. 使用Apache commons-net工具包

1. 引入commons-net依赖

<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.10.0</version></dependency>

2. 操作案例

1. 单文件下载

@Testpublic void downLoadOne() {String server = "192.168.31.252";int port = 21;String user = "anonymous";String password = "";String remoteFile = "/demo/xxx说明书.pdf";String localFile = "F:\\ftpDownlaod\\newAAA.pdf";FTPClient ftpClient = new FTPClient();OutputStream outputStream = null;try {ftpClient.connect(server, port);ftpClient.login(user, password);ftpClient.enterLocalPassiveMode();outputStream = Files.newOutputStream(Paths.get(localFile));// ftp默认使用ISO-8859-1编码格式,所以这里需要转换为ISO-8859-1,“解决文件名为中文时,下载后为空文件的问题”String remoteFileName = new String(remoteFile.getBytes("GBK"), StandardCharsets.ISO_8859_1);ftpClient.retrieveFile(remoteFileName, outputStream);} catch (IOException ex) {System.out.println("DownLoad Error: " + ex.getMessage());ex.printStackTrace();} finally {try {if (outputStream != null) {outputStream.close();}ftpClient.disconnect();} catch (IOException ex) {ex.printStackTrace();}}}

2. 切换到指定目录批量下载文件

   @Testpublic void batchDownLoadFileFromFtp() {FTPClient client = new FTPClient();try {//设置主机与端口client.connect("192.168.31.252", 21);//设置用户名及密码,这里以匿名用户登录为例,根据需求改为自己的用户名及密码client.login("anonymous", "");System.out.println("FTP服务器文件编码===>>" + client.getControlEncoding());int reply = client.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {client.disconnect();System.out.println("Login Error,Please check if your username or password is correct");return;}client.setControlEncoding("GBK");System.out.println("设置后的文件编码:" + client.getControlEncoding());client.enterLocalPassiveMode();//切换到demo目录下client.changeWorkingDirectory("demo");System.out.println("---------------------------------------");String[] names;names = client.listNames();for (String name : names) {System.out.println(name);}System.out.println("ftp服务中,demo目录中的所有文件:" + Arrays.toString(names));System.out.println("---------------------------------------");FTPFile f = client.listFiles()[0];System.out.println("getLink===>" + f.getLink());//切换到根目录下client.changeWorkingDirectory("/");String path = "/demo";client.setBufferSize(1024);client.setFileType(FTP.BINARY_FILE_TYPE);client.enterLocalPassiveMode();//切换到demo目录下获取此目录中所有的文件,并进行一个下载client.changeWorkingDirectory(path);FTPFile[] fs = client.listFiles();for (FTPFile ff : fs) {String outFileName = ff.getName();System.out.println(outFileName);//本地目录文件不需要编码File localFile = new File("F:\\ftpDownlaod\\" + ff.getName());OutputStream fos = Files.newOutputStream(localFile.toPath());// ftp默认使用ISO-8859-1编码格式,所以这里需要转换为ISO-8859-1,“解决文件名为中文时,下载后为空文件的问题”String localFileName = new String(ff.getName().getBytes("GBK"), StandardCharsets.ISO_8859_1);client.retrieveFile(localFileName, fos);fos.close();}} catch (Exception e) {e.printStackTrace();} finally {try {client.disconnect();} catch (IOException e) {e.printStackTrace();}}}

2. 使用Hutool工具

Hutool对FTP客户端基于Apache Commons Net做了进一步的封装。

文档地址:扩展(Hutool-extra) - FTP封装-Ftp

1. 引入依赖

<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.10.0</version></dependency>             
<dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.23</version></dependency>

2. 操作案例

1. 文件下载

目前存在的问题: 如果文件名称是中文,则下载后的文件大小为0


@Testpublic void ftpServerTestByAnonymousOne() {Ftp ftp = new Ftp("192.168.31.252", 21);String downLoadPath = "/demo";String fileName = "demo.pdf";String outputPath = "F:\\ftpDownlaod";ftp.download(downLoadPath, fileName, new File(outputPath));//关闭连接try {ftp.close();} catch (IOException e) {throw new RuntimeException(e);}//FtpUtil.downloadFile(host, port, user, password, remotePath, localPath);}@Testpublic void ftpServerTestByAnonymousTwo() throws UnsupportedEncodingException {Ftp ftp = new Ftp("192.168.31.252", 21, "anonymous", "", StandardCharsets.UTF_8);String downLoadPath = "/demo";String fileName = "数据迁移最佳实践.pdf";//String remoteFileName = new String(fileName.getBytes("utf-8"),"ISO-8859-1");String outputPath = "F:\\ftpDownlaod\\xxx.pdf";ftp.download(downLoadPath, fileName, new File(outputPath));//关闭连接try {ftp.close();} catch (IOException e) {throw new RuntimeException(e);}//FtpUtil.downloadFile(host, port, user, password, remotePath, localPath);}
http://www.yayakq.cn/news/609634/

相关文章:

  • 做网站主机要求网站没备案可以访问吗
  • 模版网站做支付功能表格制作教程
  • 买什么就开什么网站吗wordpress多个标签
  • 做网站需要那些编程语言官方网站怎么找
  • 网站换ip 有多大影响搜索引擎优化的技巧
  • 东营网站建设关键字排名问题泰州 做网站
  • 如何用vs做网站新媒体运营方案
  • 重庆模板网站建设长沙做手机网站建设
  • 网站网络推广优化校园网站建设先进
  • 建立化妆品网站功能信息发布网站建设
  • 网站地图设计网站建设商城模板
  • 柳州网站制作服务商网站备案 写共享可以吗
  • 爱站网影视排行榜企业网站建设招标评分表
  • 织梦的网站收录不好网页设计与制作介绍
  • 网站 乱码有些网站突然无法访问
  • 做h5网站设计移动商城官网
  • 响应式网站素材网站开发用户分析
  • 商丘做网站的公司有哪些网站首页布局修改
  • 深圳买门的网站建设wordpress只显示纯文字
  • 一个主机域名可以做多少个网站wordpress 修改目录id
  • 医院 网站建设 新闻wordpress电子书
  • 网站如何做移动适配个人网站有哪些类型
  • 数据显示网站模板购买设备有什么网站做参考
  • 小男孩和女人做的网站涞水县住房和城乡建设局网站
  • 金华网站制作熊岳网站怎么做
  • 给公司创建网站流程天元建设集团有限公司业绩
  • 上饶建站公司上海十大好厂排名
  • nodejs建设直播网站国外html5网站源码
  • wordpress企业建站模版网站做可信认证
  • 企业网站如何去做优化网站内页模板