程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法

Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法

編輯:關於JAVA

Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法。本站提示廣大學習愛好者:(Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法正文


一個JAVA 完成FTP功效的代碼,包含了辦事器的設置模塊,並包含有上傳文件至FTP的通用辦法、下載文件的通用辦法和刪除文件、在ftp辦事器上傳文件夾、檢測文件夾能否存在等,外面的有些代碼對編寫JAVA文件上傳也許有參考價值,Java FTP主文件代碼:

package ftpDemo;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import sun.net.TelnetInputStream;
import sun.net.TelnetOutputStream;
import sun.net.ftp.FtpClient;
public class ftpUtil {
// 上傳文件至FTP通用辦法
public static void upLoadFileFtp(KmConfig kmConfig,InputStream is, String fileName){
  try {
    String ftpHost = kmConfig.getFtpHost();
    int port = kmConfig.getFtpPort();
    String userName = kmConfig.getFtpUser();
    String passWord = kmConfig.getFtpPassword();
    String path = kmConfig.getFtpPath();
    FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP辦事器的IP地址,port為FTP辦事器的上岸端口,ftpHost為String型,port為int型。
    ftpClient.login(userName, passWord);// userName、passWord分離為FTP辦事器的上岸用戶名和暗碼
    ftpClient.binary();
    ftpClient.cd(path);// path為FTP辦事器上保留上傳文件的途徑。
    TelnetOutputStream telnetOut = ftpClient.put(fileName);// fileName為上傳的文件名
    DataOutputStream dataOut = new DataOutputStream(telnetOut);
    byte buffer[] = new byte[ * ];
    int count = ;
    while ((count = is.read(buffer)) != -) {
      dataOut.write(buffer, , count);
    }
    telnetOut.close();
    dataOut.close();
    ftpClient.closeServer();
  } catch (Exception e) {
    System.out.println("上傳文件掉敗!請檢討體系FTP設置,並確認FTP辦事啟動");
  }
}
// 刪除文件至FTP通用辦法
public static void deleteFileFtp(KmConfig kmConfig,String fileName){
  try {
    String ftpHost = kmConfig.getFtpHost();
    int port = kmConfig.getFtpPort();
    String userName = kmConfig.getFtpUser();
    String passWord = kmConfig.getFtpPassword();
    String path = kmConfig.getFtpPath();
    FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP辦事器的IP地址,port為FTP辦事器的上岸端口,ftpHost為String型,port為int型。
    ftpClient.login(userName, passWord);// userName、passWord分離為FTP辦事器的上岸用戶名和暗碼
    ftpClient.binary();
    ftpClient.cd(path);// path為FTP辦事器上保留上傳文件的途徑。
    try {
      ftpClient.sendServer("dele " + fileName + "\r\n");
    } catch (Exception e) {
      System.out.println("刪除文件掉敗!請檢討體系FTP設置,並確認FTP辦事啟動");
    }
    ftpClient.closeServer();
  } catch (Exception e) {
    System.out.println("刪除文件掉敗!");
  }
}
// 下載ftp文件
public static void downloadFileFtp(KmConfig kmConfig,String fileName, String clientFileName, OutputStream outputStream){
  try {
    String ftpHost = kmConfig.getFtpHost();
    int port = kmConfig.getFtpPort();
    String userName = kmConfig.getFtpUser();
    String passWord = kmConfig.getFtpPassword();
    String path = kmConfig.getFtpPath();
    FtpClient ftpClient = new FtpClient(ftpHost, port);// ftpHost為FTP辦事器的IP地址,port為FTP辦事器的上岸端口,ftpHost為String型,port為int型。
    ftpClient.login(userName, passWord);// userName、passWord分離為FTP辦事器的上岸用戶名和暗碼
    ftpClient.binary();
    ftpClient.cd(path);// path為FTP辦事器上保留上傳文件的途徑。
    try {
      TelnetInputStream in = ftpClient.get(fileName);
      byte[] bytes = new byte[];
      int cnt=;
      while ((cnt=in.read(bytes,,bytes.length)) != -) {
        outputStream.write(bytes, , cnt);
      }
      outputStream.close();
      in.close();
    } catch (Exception e) {
      ftpClient.closeServer();
      e.printStackTrace();
    }
    ftpClient.closeServer();
  } catch (Exception e) {
    System.out.println("下載文件掉敗!請檢討體系FTP設置,並確認FTP辦事啟動");
  }
}
//在ftp辦事器上傳件文件夾
  public boolean createDir(String path,FtpClient ftpClient) throws Exception{
      //進入到home文件夾下
      ftpClient.cd("/home");
      //創立長途文件夾
      //長途敕令包含
      //USER  PORT  RETR  ALLO  DELE  SITE  XMKD  CDUP  FEAT<br>
//     PASS  PASV  STOR  REST  CWD   STAT  RMD   XCUP  OPTS<br>
//     ACCT  TYPE  APPE  RNFR  XCWD  HELP  XRMD  STOU  AUTH<br>
//     REIN  STRU  SMNT  RNTO  LIST  NOOP  PWD   SIZE  PBSZ<br>
//     QUIT  MODE  SYST  ABOR  NLST  MKD   XPWD  MDTM  PROT<br>
//        在辦事器上履行敕令,假如用sendServer來履行長途敕令(不克不及履行當地FTP敕令)的話,一切FTP敕令都要加上/r/n<br>
//          ftpclient.sendServer("XMKD /test/bb/r/n"); //履行辦事器上的FTP敕令<br>
//          ftpclient.readServerResponse必定要在sendServer後挪用<br>
//          nameList("/test")獲得指目次下的文件列表<br>
//          XMKD樹立目次,當目次存在的情形下再次創立目次時報錯<br>
//          XRMD刪除目次<br>
//          DELE刪除文件<br>
    //經由過程長途敕令 穿件一個files文件夾
    ftpClient.sendServer("MKD "+ path + "\r\n");
    //這個辦法必需在 這兩個辦法中央挪用 不然 敕令不論用
    ftpClient.binary();
    ftpClient.readServerResponse();
    return false;
  }
/**
 * 檢討文件夾能否存在
 * @param dir
 * @param ftpClient
 * @return
 */
  public boolean isDirExist(String dir, FtpClient ftpClient) {
     try {
      ftpClient.cd(dir);
    } catch (Exception e) {
      return false;
    }
    return true;
  }
}

KmConfig.java代碼以下:界說FTP辦事器參數,包含登錄的用戶名暗碼之類的。

package ftpDemo;
public class KmConfig {
  //主機ip
  private String FtpHost = "";
  //端標語
  private int FtpPort;
  //ftp用戶名
  private String FtpUser = "";
  //ftp暗碼
  private String FtpPassword = "";
  //ftp中的目次
  private String FtpPath = "";
  public String getFtpHost() {
    return FtpHost;
  }
  public void setFtpHost(String ftpHost) {
    FtpHost = ftpHost;
  }
  public int getFtpPort() {
    return FtpPort;
  }
  public void setFtpPort(int ftpPort) {
    FtpPort = ftpPort;
  }
  public String getFtpUser() {
    return FtpUser;
  }
  public void setFtpUser(String ftpUser) {
    FtpUser = ftpUser;
  }
  public String getFtpPassword() {
    return FtpPassword;
  }
  public void setFtpPassword(String ftpPassword) {
    FtpPassword = ftpPassword;
  }
  public String getFtpPath() {
    return FtpPath;
  }
  public void setFtpPath(String ftpPath) {
    FtpPath = ftpPath;
  }
}

上面是測試代碼:

package ftpDemo;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class Test {
  public static void main(String[] args) {
    //設置ftp
    KmConfig km = new KmConfig();
    km.setFtpHost("...");
    km.setFtpPort();
    km.setFtpUser("test");
    km.setFtpPassword("");
    km.setFtpPath("KM");
    //上傳到ftp
    ftpUtil util=new ftpUtil();
    File file = new File("F:/文章.jpg");
    InputStream in;
    try {
      in = new FileInputStream(file);
      util.upLoadFileFtp(km, in, "更改後的名字.jpg");
    } catch (FileNotFoundException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
  }
}

以上代碼是小編給年夜家引見關於Java完成ftp上傳下載、刪除文件及在ftp辦事器上傳文件夾的辦法,願望年夜家愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved