java ftp下载文件
1、使用官方正规的jar
commons-net-1.4.1.jar
jakarta-oro-2.0.8.jar
注意:使用ftp从windows服务器下载文件和从linux服务器下载文件不一样
2、用ftp从linux服务器下载文件
System.out.println(new Date()+" 开始进入ftpDownload定时器"); //ftp服务器登录凭证
String host=PropertiesManager.getProperty("ftpHost");
int port=Integer.parseInt(PropertiesManager.getProperty("ftpPort"));
String user=PropertiesManager.getProperty("ftpUser");
String password=PropertiesManager.getProperty("ftpPassword"); //获取时间字段信息
SimpleDateFormat sdf1=new SimpleDateFormat("yyyyMMdd");
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
Date date=new Date();
String today1 = sdf1.format(date);
String today = sdf.format(date); String txtFileDir="/";
String txtSaveDir="E:/dataCenter/shengzhan/"; //检查本地磁盘目录是否存在txt文件
boolean flag = isTxtExit(today1,txtSaveDir);
System.out.println(new Date()+" 判断txt文件是否存在:"+flag);
FlagUtil.ftpDownloadRunning=true; //讲txt的下载操作和解析操作分成2个独立的操作进行,排除互相间的干扰
if(flag==false)//文件不存在进行ftp下载操作
{
FTPClient ftp=null;
try
{
//ftp的数据下载
ftp=new FTPClient();
ftp.connect(host, port);
ftp.login(user, password);
ftp.setFileType(FTPClient.BINARY_FILE_TYPE); //设置linux环境
FTPClientConfig conf = new FTPClientConfig( FTPClientConfig.SYST_UNIX);
ftp.configure(conf); //判断是否连接成功
int reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply))
{
ftp.disconnect();
System.out.println("FTP server refused connection.");
return;
} //设置访问被动模式
ftp.setRemoteVerificationEnabled(false);
ftp.enterLocalPassiveMode(); //检索ftp目录下所有的文件,利用时间字符串进行过滤
boolean dir = ftp.changeWorkingDirectory(txtFileDir);
if (dir)
{
FTPFile[]fs = ftp.listFiles();
for(FTPFile f:fs)
{
if(f.getName().indexOf(today1+"2000")>0)
{
System.out.println(new Date()+" ftpDownload定时器下载txt成功");
File localFile = new File(txtSaveDir+f.getName());
OutputStream ios = new FileOutputStream(localFile);
ftp.retrieveFile(f.getName(), ios);
ios.close();
break;
}
}
}
}
catch (Exception e)
{
e.printStackTrace();
System.out.println(new Date()+" ftp下载txt文件发生错误");
}
finally
{
if(ftp != null) try {ftp.disconnect();} catch (IOException ioe) {}
}
3、使用ftp从windows服务器下载文件
public static boolean downFile(
String url, //FTP服务器hostname
int port,//FTP服务器端口
String username, //FTP登录账号
String password, //FTP登录密码
String remotePath,//FTP服务器上的相对路径
String fileName,//要下载的文件名
String localPath//下载后保存到本地的路径 ) {
boolean success = false;
FTPClient ftp = new FTPClient();
try {
int reply;
ftp.connect(url, port);
//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器
ftp.login(username, password);//登录
reply = ftp.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftp.disconnect();
return success;
}
System.out.println("aaa");
ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录
FTPFile[] fs = ftp.listFiles(); for(FTPFile ff:fs){
System.out.println("bb" + fs); if(ff.getName().equals(fileName)){
System.out.println("dd");
File localFile = new File(localPath+"/"+ff.getName());
OutputStream is = new FileOutputStream(localFile);
ftp.retrieveFile(ff.getName(), is);
System.out.println("ccc" +ff.getName()+fileName);
is.close();
}
}
ftp.logout();
success = true;
} catch (IOException e) {
e.printStackTrace();
} finally {
if (ftp.isConnected()) {
try {
ftp.disconnect();
} catch (IOException ioe) {
}
}
}
return success;
}
java ftp下载文件的更多相关文章
- Java FTP下载文件以及编码问题小结
问题 之前在开发过程中,遇到了一点问题,我要访问一个FTP服务器去下载文件详细情况如下: 1. 需要传入一个可能为中文的文件名: 2. 通过文件名去FTP上寻找该文件: 3. FTP服务器的命名编码为 ...
- C#FTP下载文件出现远程服务器返回错误: (500) 语法错误,无法识别命令
如果下载多个文件的时候,有时候莫名其妙的出现500服务器错误,很有可能是没有设置KeepAlive 属性导致的. 出现应用程序未处理的异常:2015/1/6 11:40:56 异常类型:WebExce ...
- python从FTP下载文件
#!/usr/bin/python # -*- coding: utf-8 -*- """ FTP常用操作 """ from ftplib ...
- .Net 连接FTP下载文件报错:System.InvalidOperationException: The requested FTP command is not supported when using HTTP proxy
系统环境: Windows + .Net Framework 4.0 问题描述: C#连接FTP下载文件时,在部分电脑上有异常报错,在一部分电脑上是正常的:异常报错的信息:System.Inval ...
- c#.net从ftp下载文件到本地
c#.net从ftp下载文件到本地 /*首先从配置文件读取ftp的登录信息*/ ; ; , buffer_c ...
- 记录java ftp下载图片只有96KB的问题
public InputStream downloadFile(String path) { if(StringUtils.isBlank(path)) { return null; } connne ...
- java实现FTP下载文件
ftp上传下载文件,是遵照ftp协议上传下载文件的,本例仅以下载文件为例. 重要的方法解释: 1.FTP功能相关依赖路径:org.apache.commons.net.ftp.*: 2.ftp默认端口 ...
- Java远程下载文件到本地(http协议和ssh2协议)
Java中java.io包为我们提供了输入流和输出流,对文件的读写基本上都依赖于这些封装好的关于流的类中来实现.前段时间遇到了以下两种需求: 1.与某系统对接,每天获取最新的图片并显示在前端页面.该系 ...
- FTP下载文件失败
这几天的定时任务下载文件的脚本失败了. 于是手工执行测试,发现报550 Permission denied. Passive mode refused. 意思就是被动模式下,没有权限获取文件. 解决方 ...
随机推荐
- asp.net 网站开发流程总结
由于这学期要做asp.net的网站开发,导师让我们在前期做详细的计划说明,时间安排.由于网站开发流程不知道,以及需要学什么指示都是盲懂,所以计划安排需在了解大致流程之后才能做出来,一下是询问同学和在网 ...
- ZK dropEvent简单使用
前台(Drop.zul) <?page title="拖动测试" contentType="text/html;charset=UTF-8"?> & ...
- Oracle rac集群环境中的特殊问题
备注:本文摘抄于张晓明<大话Oracle RAC:集群 高可用性 备份与恢复> 因为集群环境需要多个计算机协同工作,要达到理想状态,必须要考虑在集群环境下面临的新挑战. 1.并发控制 在集 ...
- DBHelper.java(数据库连接类)
package com.vcredit.ddcash.batch.util; import java.sql.Connection;import java.sql.DriverManager;impo ...
- java之main函数(笔记)
1.标准的main函数形式 对于main函数,只要是 public static void main(String[] args) public static void main(String... ...
- 获取 Cookie
/// <summary> /// 获取WPF url 地址中的Cookies /// </summary> public partial class Coo ...
- 11高级网站构建:div和span
用<div>元素把属于一个逻辑部分的元素包围起来.可以用id属性为<div>提供一个唯一的标签. <div>的作用:1.更深一步展示页面的基本逻辑结构(相当于一个逻 ...
- 前后端分离开发——模拟数据mock.js
mock.js 生成模拟数据,拦截ajax请求 <script type="text/javascript" src="http://libs.baidu.com/ ...
- yii框架分页
- 在 Amazon AWS 搭建及部署网站:(一)申请、设置 AWS 服务
亚马逊 AWS 介绍 简单来说,AWS (Amazon Web Service) 提供了一整套基础设施和服务,使"建站"这件事变得轻松愉快. 你可以利用AWS构建博客主机,云存储( ...