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. 意思就是被动模式下,没有权限获取文件. 解决方 ...
随机推荐
- 数位DP bzoj1026
1026: [SCOI2009]windy数 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 5809 Solved: 2589[Submit][Sta ...
- log4net 配置应用
(一). WinForm 或者 WPF 中的配置和应用 <?xml version="1.0" encoding="utf-8" ?> <co ...
- android studio学习之一
一:ADT和sdk的区别 ADT(Android Development Tools): 目前Android开发所用的开发工具是Eclipse,在Eclipse编译IDE环境中,安装ADT,为Andr ...
- [转]linux 查看系统信息命令
linux 查看系统信息命令是linux初学者必备的基础知识, 这些命令也非常有用, 因为进入linux第一件事就可能是首先查看系统信息, 因此必要的系统的学习一下这些linux系统信息命令还是非常有 ...
- Vim 常见操作
1.复制所有内容 按照此顺序敲即可:gg(光标定位到文件头) V(选中该行) G(选中该行开始到最后一行结尾) y(复制选中内容) 2.粘贴所有内容 正常模式下,敲p即可,如果遇到粘贴内容不全,需要 ...
- 使用webbench对不同的web服务器进行压力测试
1.webbench在linux下的安装步骤,如果安装过程失败,请检查当前用户的执行权限,如果报找不到某个目录的错,请自行创建指定的目录: #wget http://home.tiscali.cz/~ ...
- tomcat启动后,在普通java类中获取spring管理的bean和ServletContext,(经过验证,可以取到)
//从spring容易中获取bean public static Object getBean(String beanName){ ApplicationContext context = Conte ...
- 面试之servlet、过滤器、监听器
servlet.过滤器.监听器servlet是Java中WEB请求和响应的容器servlet的运行需要在类似tomcat容器中,一个 Web 应用对应一个 Context 容器,也就是 Servlet ...
- MUI - DIV窗体切换
神坑记录: 1.js报错异常:没有找到"innerHeight"属性? 解决方案:暂时不知原因,通过对mui.view.js进行调试得知是跳转目标页没有 .mui-navbar-l ...
- php课程---Windows.open()方法参数详解
Window.open()方法参数详解 1, 最基本的弹出窗口代码 window.open('page.html'); 2, 经过设置后的弹出窗口 window.open('page.html ...