首页 > 代码库 > Java FTP工具类持续更新中非原创

Java FTP工具类持续更新中非原创

  1 package com.ftp;  2   3 import java.io.File;  4 import java.io.FileInputStream;  5 import java.io.FileOutputStream;  6 import java.io.IOException;  7 import java.io.InputStream;  8 import java.io.OutputStream;  9 import java.net.InetSocketAddress; 10 import java.net.SocketAddress; 11  12 import sun.net.ftp.FtpClient; 13 import sun.net.ftp.FtpProtocolException; 14  15 public class FTPUtil { 16     /** 17      * 连接ftp服务器 JDK 1.7 18      * @param url 19      * @param port 20      * @param username 21      * @param password 22      * @return FtpClient 23      * @throws FtpProtocolException 24      * @throws IOException 25      */ 26     public static FtpClient connectFTP(String url,int port,String username,String password) { 27         //创建ftp 28         FtpClient ftp = null; 29         try { 30             //创建地址 31             SocketAddress addr = new InetSocketAddress(url,port); 32             //连接 33             ftp = FtpClient.create(); 34             ftp.connect(addr); 35             //登陆 36             ftp.login(username,password.toCharArray()); 37             ftp.setBinaryType(); 38             System.out.println(ftp.getWelcomeMsg()); 39         } catch (FtpProtocolException e) { 40             // TODO Auto-generated catch block 41             e.printStackTrace(); 42         } catch (IOException e) { 43             // TODO Auto-generated catch block 44             e.printStackTrace(); 45         } 46         return ftp; 47     } 48      49     /**切换目录 50      * @param ftp 51      * @param path 52      */ 53     public static void changeDirectory(FtpClient ftp,String path) { 54         try { 55             ftp.changeDirectory(path); 56              57             System.out.println(ftp.getWorkingDirectory()); 58         } catch (FtpProtocolException e) { 59             // TODO Auto-generated catch block 60             e.printStackTrace(); 61         } catch (IOException e) { 62             // TODO Auto-generated catch block 63             e.printStackTrace(); 64         } 65     } 66      67     /** 68      * 关闭ftp 69      * @param ftp 70      */ 71     public static void disconnectFTP(FtpClient ftp){ 72         try { 73             ftp.close(); 74             System.out.println("disconnect success!!"); 75         } catch (IOException e) { 76             // TODO Auto-generated catch block 77             e.printStackTrace(); 78         } 79     } 80      81     /** 82      * 上传文件 83      * @param localFile 84      * @param ftpFile 85      * @param ftp 86      */ 87     public static void upload(String localFile,String ftpFile,FtpClient ftp){ 88         OutputStream os = null; 89         FileInputStream fis = null; 90         try { 91             //将ftp文件加入输出流中。输出到ftp上 92             os = ftp.putFileStream(ftpFile); 93             File file = new File(localFile); 94             //创建一个缓冲区 95             fis = new FileInputStream(file); 96             byte[] bytes = new byte[1024]; 97             int c; 98             while((c = fis.read(bytes))!=-1){ 99                 os.write(bytes,0,c);100             }101             System.out.println("upload success!!");102         } catch (FtpProtocolException e) {103             // TODO Auto-generated catch block104             e.printStackTrace();105         } catch (IOException e) {106             // TODO Auto-generated catch block107             e.printStackTrace();108         }finally{109             try {110                 if(os!=null)111                     os.close();112                 if(fis!=null)113                     fis.close();114             } catch (IOException e) {115                 // TODO Auto-generated catch block116                 e.printStackTrace();117             }118         }119         120         121     }122     123     /**124      * 文件下载125      * @param localFile126      * @param ftpFile127      * @param ftp128      */129     public static void download(String localFile,String ftpFile,FtpClient ftp){130         InputStream is = null;131         FileOutputStream fos = null;132             try {133                 //获取ftp上的文件134                 is = ftp.getFileStream(ftpFile);135                 File file = new File(localFile);136                 byte[] bytes = new byte[1024];137                 int i;138                 fos = new FileOutputStream(file);139                 while((i = is.read(bytes))!=-1){140                     fos.write(bytes, 0, i);141                 }142                 System.out.println("download success!!");143                 144             } catch (FtpProtocolException e) {145                 // TODO Auto-generated catch block146                 e.printStackTrace();147             } catch (IOException e) {148                 // TODO Auto-generated catch block149                 e.printStackTrace();150             }finally{151                 try {152                     if(fos!=null)153                         fos.close();154                     if(is!=null){155                         is.close();156                     }157                 } catch (IOException e) {158                     // TODO Auto-generated catch block159                     e.printStackTrace();160                 }161             }162             163     }164     165 }

 

Java FTP工具类持续更新中非原创