java ftpclient详解_ftpClient上传文件详解

importjava.io.BufferedInputStream;importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.sql.Connection;importjava.sql.Statement;importjava.util.ArrayList;importjava.util.List;importjava.util.Vector;importorg.apache.commons.net.ftp.FTPClient;importorg.apache.commons.net.ftp.FTPFile;importorg.apache.commons.net.ftp.FTPReply;public classTfpTools {//连接ftp

private FTPClient ftpClient = null;//public static String ip = "117.21.208.37";//public static int port = 21;//public static String username = "eftp";//public static String password = "e1f2t3p4";//public static String sub_path = "/opt/tomcat/webapps/photocdn/msgdata/";

/*** 连接ftp*/

public void connectServer(String ip,int port,String username,String password,String sub_path) throwsException {int i = 10;if (ftpClient == null) {intreply;while (i > 0) {try{

ftpClient= newFTPClient();if (port != 21)

ftpClient.connect(ip, port);elseftpClient.connect(ip);

ftpClient.login(username, password);

reply=ftpClient.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {

ftpClient.disconnect();

}

System.out.println("sub_path=============="+sub_path);//对目录进行转换

if(ftpClient.changeWorkingDirectory(sub_path)) {

}else{

ftpClient.disconnect();

ftpClient= null;

}

}catch(Exception e) {

e.printStackTrace();if (0 < i--) {try{

Thread.sleep(10000);continue;

}catch(Exception ex) {

}

}

}

i= 0;

}

}

}/*** 文件上传

*@paramip

*@paramport

*@paramusername

*@parampassword

*@paramsub_path 远程文件上传目录

*@paramlocalFilePath 本地文件存放路径、、

*@paramnewFileName 远程生成的文件路径和文件名

*@throwsException*/

public void uploadFile(String ip,int port,String username,String password,String sub_path,String localFilePath, String newFileName)throwsException {

BufferedInputStream buffIn= null;try{

connectServer(ip,port,username,password,sub_path);//连接服务器

System.out.println("start upload");

buffIn= new BufferedInputStream(newFileInputStream(localFilePath));

System.out.println("find localFilePath success");

ftpClient.storeFile(newFileName, buffIn);

System.out.println("upload success");

}catch(Exception e) {

e.printStackTrace();throwe;

}finally{try{if (buffIn != null)

buffIn.close();

}catch(Exception e) {

e.printStackTrace();

}

}

}/***

* Definition: 读取txt文件,存放到list中,以便于读取

* author: xiehaoyu

* Created date: 2013-6-14

*@paramreadTxt

*@return

*/

public static ListreadTxt(String readTxt){

BufferedReader br= null;

List list = new ArrayList();try{

br= new BufferedReader(new InputStreamReader(newFileInputStream(newFile(readTxt))));

String temp=br.readLine();while (temp != null) {

String[] str=temp.toString().trim().split("\\|");for(String s : str){if(!"".equals(s))

list.add(s);

}

temp=br.readLine();

}

br.close();

}catch(Exception e1) {

e1.printStackTrace();

}returnlist;

}public voidcopyFile(String oldPath, String newPath) {try{int bytesum = 0;int byteread = 0;

File oldfile= newFile(oldPath);if (oldfile.exists()) { //文件存在时

InputStream inStream = new FileInputStream(oldPath); //读入原文件

FileOutputStream fs = newFileOutputStream(newPath);byte[] buffer = new byte[1444];while ( (byteread = inStream.read(buffer)) != -1) {

bytesum+= byteread; //字节数 文件大小

System.out.println(bytesum);

fs.write(buffer,0, byteread);

}

inStream.close();

}

}catch(Exception e) {

System.out.println("复制单个文件操作出错");

e.printStackTrace();

}

}public voiddelFile(String filePathAndName) {try{

String filePath=filePathAndName;

filePath=filePath.toString();

java.io.File myDelFile= newjava.io.File(filePath);

myDelFile.delete();

}catch(Exception e) {

System.out.println("删除文件操作出错");

e.printStackTrace();

}

}/*** 文件下载。。

*@paramurl ftp ip

*@paramport ftp端口

*@paramusername

*@parampassword

*@paramremotePath 下载路径

*@paramfileName 下载文件中包含什么文件名

*@paramlocalPath 本地存放路径

*@return

*/

public static booleandownFile(

String url,intport,

String username,

String password,

String remotePath,

String fileName,

String localPath){boolean success = false;

FTPClient ftp= newFTPClient();try{intreply;

ftp.connect(url, port);//如果采用默认端口,可以使用ftp.connect(url)的方式直接连接FTP服务器

ftp.login(username, password);//登录

reply =ftp.getReplyCode();if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect();returnsuccess;

}

ftp.changeWorkingDirectory(remotePath);//转移到FTP服务器目录

FTPFile[] fs =ftp.listFiles();

TfpTools fu=newTfpTools();for(FTPFile ff:fs){if(ff.getName().contains(fileName)){if(fu.ToDetermineWhetherAFileExists(ff.getName())){

File localFile= new File(localPath+"/"+ff.getName());

OutputStream is= newFileOutputStream(localFile);

ftp.retrieveFile(ff.getName(), is);

is.close();

}

}

}

ftp.logout();

success= true;

}catch(IOException e) {

e.printStackTrace();

}finally{if(ftp.isConnected()) {try{

ftp.disconnect();

}catch(IOException ioe) {

}

}

}returnsuccess;

}public booleanToDetermineWhetherAFileExists(String fileName){boolean flag=true;

Vector v=new Vector();

v=GetTestXlsFileName("c:/JX_jiekou/src/backups");for(int i=0;i

String str=(String)v.elementAt(i);if(str.equals(fileName)){

flag=false;

}

}returnflag;

}/*** 读取本地某个目录下,所有txt文件的文件名

*@paramfileAbsolutePath 本地文件目录。

*@return

*/

public static VectorGetTestXlsFileName(String fileAbsolutePath) {

Vector vecFile = new Vector();

File file= newFile(fileAbsolutePath);

File[] subFile=file.listFiles();for (int iFileLength = 0; iFileLength < subFile.length; iFileLength++) {//判断是否为文件夹

if (!subFile[iFileLength].isDirectory()) {

String fileName=subFile[iFileLength].getName();//判断是否为.txt结尾

if (fileName.trim().toLowerCase().endsWith(".txt")) {

vecFile.add(fileName);

}

}

}returnvecFile;

}public booleantruncateTable(String tableName){

Connection conn=null;

Statement sm=null;

String sql="truncate table "+tableName;try{

conn=DBConfig.getConn(JkConfig.getDb_url(),JkConfig.getDb_username(),JkConfig.getDb_password(),0);

sm=conn.createStatement();

sm.executeUpdate(sql);

}catch(Exception e) {

e.printStackTrace();

}return true;

}public voidcloseConnect() {try{if (ftpClient != null) {

ftpClient.logout();

ftpClient.disconnect();

ftpClient=null;

}

}catch(Exception e) {

e.printStackTrace();

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值