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 ...
随机推荐
- How to kill a process on a port on linux 怎么杀死 关掉一个端口
sudo kill `sudo lsof -t -i:9001`
- Android开发10——Activity的跳转与传值
Activity跳转与传值,主要是通过Intent类,Intent的作用是激活组件和附带数据. 一.Activity跳转 方法一Intent intent = new Intent(A.this, B ...
- U3D-LookAt插值动画
var qua = Quaternion.FromToRotation(Vector3.forward, target.transform.position - transform.position) ...
- Objective-C之成魔之路【13-预处理程序】
郝萌主倾心贡献.尊重作者的劳动成果,请勿转载. 假设文章对您有所帮助.欢迎给作者捐赠.支持郝萌主,捐赠数额任意.重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源代码下载:点我传送 预处理提供 ...
- [转帖]cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND
原文:cocos2D-X源码分析之从cocos2D-X学习OpenGL(2)----QUAD_COMMAND 上一篇文章介绍了cocos2d-x的基本渲染结构,这篇顺着之前的渲染结构介绍渲染命令QUA ...
- Jquery 禁用元素的所有属性
jQuery有一个.prop()的方法,可以让你来调整元素的属性. 以下代码显示如何禁用所有按钮: $("button").prop("disabled", t ...
- lambda续集——1
捕获列表,只用于局部非static变量,lambda可以直接使用局部static变量和它所在函数之外声明的名字. eg: #include<iostream> using namespac ...
- dp之区间:Light oj 1422 Halloween Costumes
http://lightoj.com/volume_showproblem.php?problem=1422 题意:给你n天需要穿的衣服的样式,每次可以套着穿衣服,脱掉的衣服就不能再穿了,问至少要带多 ...
- [转]SQL Server 2012 的 T-SQL 新功能 – 新的数据分析函数(LEAD、LAG)
当您需要在 SQL Server 中利用 T-SQL 比较结果集的每一列跟前一列或后一列的差异时,在过去可能需要利用 CURSOR 搭配临时表变量,或是透过递归 CTE 来达到这个效果,如今 SQL ...
- 面试-SizeOf一个对象会得到什么?
相关资料: 1.https://zhidao.baidu.com/question/283124338.html unit Unit1; interface uses Windows, Message ...