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 ...
随机推荐
- Windows Store Apps 开发转载
懒得写了,就直接记录转载一下文章地址吧. 如何为应用定义全局默认字体:http://blogs.msdn.com/b/gautamdh/archive/2014/03/16/how-to-change ...
- Oracle 每五千条执行一次的sql语句
今天碰到一个问题,更新历史数据时,由于数据库表数据量太大,单行更新速度很慢,要求每五千条执行一次提交进行更新.执行SQL如下: declare i_count int; i_large int; be ...
- nyoj592 spiral grid
spiral grid 时间限制:2000 ms | 内存限制:65535 KB 难度:4 描述 Xiaod has recently discovered the grid named &q ...
- dvwa 源码分析(三) --- config.inc.php分析
<?php # If you are having problems connecting to the MySQL database and all of the variables belo ...
- iOS-打包成ipa的4种方法
打包ipa的前提 1.证书的申请和设置和上面文章的一样 从第一步到第四步都是一样的http://www.cnblogs.com/sunfuyou/p/5900592.html2.还有第六步的 1-3都 ...
- wp中的双向绑定
using System; using System.Collections.Generic; using System.ComponentModel; using System.Linq; usin ...
- cocos2dx坐标系介绍
GL坐标系 Cocos2D以OpenglES为图形库,所以它使用OpenglES坐标系.GL坐标系原点在屏幕左下角.x轴向右.y轴向上. 屏幕坐标系 苹果的Quarze2D使用的是不同的坐标系统,原点 ...
- 为WPF程序添加字体
很多时候我们开发的程序可能会在多个版本的Windows上运行,比如XP.Win7.Win8. 为了程序美观,现在很多公司会使用WPF作为程序的界面设计. 跨版本的操作的操作系统往往有一些字体上的问题, ...
- Apache HttpComponents 多线程处理HTTP请求
/* * ==================================================================== * * Licensed to the Apache ...
- 网络硬盘录像机和数字硬盘录像机区别(nvr dvr ipc区别)
DVR Digital Video Recorder 数字硬盘录像机 NVR Network Video Recorder 网络硬盘录像机 DVR(数字硬盘录像机)和NVR(网络硬盘录像机)在 ...