Java调用FTP实例
package com.test; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;
import java.net.UnknownHostException; import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPFile; public class FtpClientTest { /**
* @param args
* @throws SocketException
* @throws IOException
* @throws UnknownHostException
*/
public static void main(String[] args) throws SocketException, IOException{
// TODO Auto-generated method stub
String host = "192.168.0.107" ;
String user = "ftpClient" ;
String pass = "ftp123" ;
up(host, 21, user, pass) ;
}
static void load(String host ,int port ,String user ,String pass){
FTPClient client = new FTPClient() ;
try {
client.connect(host,port) ;
boolean flag = client.login(user, pass) ;
if(flag){
/**
* ASCII传输方式 假定用户正在拷贝的文件包含的简单ASCII码文本,
* 如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。
* 但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件,这回导致文件损坏
*/
//设置采用二进制传输方式下载,若采用默认的ascii传输方式下载可能导致文件损失
client.setFileType(FTP.BINARY_FILE_TYPE);
//切换当前目录到xx
client.changeWorkingDirectory("/20170806") ;
FTPFile[] ftpFiles = client.listFiles() ;
OutputStream out = null ;
int i = 1 ;
for(FTPFile f:ftpFiles){
File file = new File("G:/ftp/") ;
if(!file.exists())
file.mkdirs() ;
file = new File(file, new String(f.getName().getBytes("iso-8859-1"),"GBK")) ;
out = new FileOutputStream(file) ;
client.retrieveFile(f.getName(), out) ;
out.close() ;
i++ ;
}
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
static void up(String host ,int port ,String user ,String pass){
FTPClient client = new FTPClient() ;
try {
client.connect(host,port) ;
boolean flag = client.login(user, pass) ;
if(flag){
client.setFileType(FTP.BINARY_FILE_TYPE);
//切换工作目录
client.changeWorkingDirectory("/20170806") ;
InputStream in = new FileInputStream("E:/周报/个人周报.xlsx") ;
client.storeFile("1234.xlsx", in) ;
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Java调用FTP实例的更多相关文章
- JAVA调用FTP上传文件
import java.io.File; import java.io.FileInputStream; import org.apache.commons.net.ftp.FTP; import o ...
- Java 调用 PHP 实例(五)
java代码: package test; import java.io.BufferedReader; import java.io.File; import java.io.IOException ...
- java调用第三方的webservice应用实例
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- 转载 基于JAVA每月运势api调用代码实例
代码描述:基于JAVA每月运势api调用代码实例 接口地址:http://www.juhe.cn/docs/api/id/58 原文链接:http://outofmemory.cn/code-snip ...
- java调用第三方的webservice应用实例【转载】
互联网上面有很多的免费webService服务,我们可以调用这些免费的WebService服务,将一些其他网站的内容信息集成到我们的Web应用中显示. 一些常用的webservice网站的链接地址: ...
- [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PWideChar
Delphi代码 unit UnitDll; interface uses StrUtils, SysUtils, Dialogs; function DoBusinessWide(pvData: P ...
- [JNA系列]Java调用Delphi编写的Dll之实例Delphi使用PAnsiChar
Delphi代码 unit UnitDll; interface uses StrUtils, SysUtils, Dialogs; function DoBusinessAnsi(pvData: P ...
- JAVA调用oracle存储过程实例
1.创建添加存储过程 CREATEORREPLACEPROCEDURE stu_proc(v_id INNUMBER, v_name INVARCHAR2, v_age INNUMBER) AS BE ...
- JAVA 实现FTP上传下载(sun.net.ftp.FtpClient)
package com.why.ftp; import java.io.DataInputStream; import java.io.File; import java.io.FileInputSt ...
随机推荐
- unity 获得父子节点
与常识不同,unity中获得父子节点需要通过transform.即先获得父/子节点的transform,然后再通过父/子节点的transform获得父/子节点. 获得父节点gameObject: Ga ...
- vim:将刚写的单词大写和单词的定义
最近打算把caps lock映射成<esc>键,那按起来多爽,现在的有一个小问题,如何快捷的输入大写字母. 用这个键盘映射搞定. inoremap <c-u> <esc& ...
- jvisualvm工具使用
VisualVM 是Netbeans的profile子项目,已在JDK6.0 update 7 中自带(java启动时不需要特定参数,监控工具在bin/jvisualvm.exe). https:// ...
- VS2012 WIN7下使用DotNetBar 使用Office2007Form皮肤 窗体运行不显示问题解决方法
在窗体属性中有个EnableGlass属性,设置为False即可.
- js 取父级 页面上的元素
var bb=window.opener.frames["contentIframe"].document.all["my:费用类别"][0].value; / ...
- hdoj1171 Big Event in HDU
Big Event in HDU Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- form表单提交数据编码方式和tomcat接受数据解码方式的思考
http://blog.sina.com.cn/s/blog_95c8f1ac010198j2.html *********************************************** ...
- JNDI到底是什么,有什么作用
http://shitou521.iteye.com/blog/696006 ******************************************* JNDI的一篇文章 前端时间总是在 ...
- LeetCode: Candy 解题报告
Candy There are N children standing in a line. Each child is assigned a rating value. You are giving ...
- sqlserver 关于子查询的优化操作
在对条件需要用到子查询的时候,通常可以通过连接来代替子查询来完成操作,更加高效 SELECT t1.id,t2.columnName,t2.columnType,t1.rownum,t1.cellVa ...