common-net ftp简单demo

package cn.xt.net.ftp;  
  
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 org.apache.commons.net.ftp.FTPClient;  
import org.apache.commons.net.ftp.FTPFile;  
import org.apache.commons.net.ftp.FTPReply;  
import org.junit.Test;  
  
public class Ftpclient {  
      
    final static String PATH="d:/zhanghuadong/";  
    final static String SERVICE_ADDRESS="192.168.0.115";  
    final static String USER="ftpuser";  
    final static String PASSWORD="ftpuser";  
    final static String DOWN_FILE_NAME="XF200070750845720090218";  
    /** 
     * Ftp下载 
     * 
     */  
    @Test  
    public void ftpQuery(){  
        FTPClient client=new FTPClient();  
        try {  
            client.connect(SERVICE_ADDRESS);  
            boolean islogon=client.login(USER, PASSWORD);  
            FTPFile[] files=null;  
            if(islogon){  
                int reply=client.getReplyCode();  
                /**判断返回代码 */  
                if(!FTPReply.isPositiveCompletion(reply)){  
                    throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");  
                }  
                /**更改下载的目录 */  
                client.changeWorkingDirectory("qyyd_fsend/");  
                files=client.listFiles();  
                File file=null;  
                for (int i = 0; i < files.length; i++) {  
                    System.out.println(files[i].getName());  
                    if(files[i].getName().equals("XF200070750845720090218")){  
                        System.out.println("down...");  
                        file=new File(PATH+files[i].getName());  
                    }  
                }  
                if(file!=null){  
                    OutputStream out=new FileOutputStream(file);  
                    client.retrieveFile("XF200070750845720090218", out);  
                    System.out.println("down success...");  
                    out.close();  
                }  
                System.out.println("logon 成功!");  
            }  
            client.logout();  
            client.disconnect();  
        } catch (SocketException e) {  
            e.printStackTrace();  
        } catch (IOException e) {  
            e.printStackTrace();  
        } catch(Exception e){  
            e.printStackTrace();  
        }  
    }  
      
    public void ftpUpload(){  
        FTPClient ftp=new FTPClient();  
        InputStream stream=null;  
        try{  
            //ftp.setDefaultPort(221);  
            ftp.connect(SERVICE_ADDRESS);  
            boolean islogon=ftp.login(USER, PASSWORD);  
            if(islogon){  
                int recode=ftp.getReplyCode();  
                if(!FTPReply.isPositiveCompletion(recode)){  
                    throw new Exception("对不起,"+SERVICE_ADDRESS+" user:"+USER+" password:"+PASSWORD+" 连接出错!");  
                }  
                stream=new FileInputStream(new File(PATH+DOWN_FILE_NAME));  
                FTPFile[] files=ftp.listFiles();  
                int overname=0;  
                for (int i = 0; i < files.length; i++) {  
                    if(files[i].getName().indexOf(DOWN_FILE_NAME)!=-1){  
                        overname++;  
                    }  
                }  
                if(overname>0){  
                    ftp.rename(DOWN_FILE_NAME, DOWN_FILE_NAME+"."+overname);  
                }  
                //设置文件类型 文本类型 二进制文件 区别文本会根据系统加换行符  二进制则不会  
                ftp.setFileType(FTPClient.ASCII_FILE_TYPE);  
                boolean isstore=ftp.storeFile(DOWN_FILE_NAME,stream);  
                stream.close();  
                if(!isstore){  
                    System.out.println("upload fail ...");  
                }  
                System.out.println("upload  success...");  
            }  
        }catch(Exception e){  
            e.printStackTrace();  
        }finally{  
            try {  
                ftp.logout();  
                ftp.disconnect();  
            } catch (IOException e) {  
                e.printStackTrace();  
            }  
        }  
    }  
      
    public static void main(String[] args){  
        Ftpclient client=new Ftpclient();  
        client.ftpUpload();  
    }  
}  


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值