国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法

2019-11-26 14:51:41
字體:
供稿:網(wǎng)友

一個(gè)JAVA 實(shí)現(xiàn)FTP功能的代碼,包括了服務(wù)器的設(shè)置模塊,并包括有上傳文件至FTP的通用方法、下載文件的通用方法以及刪除文件、在ftp服務(wù)器上傳文件夾、檢測(cè)文件夾是否存在等,里面的有些代碼對(duì)編寫JAVA文件上傳或許有參考價(jià)值,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服務(wù)器的IP地址,port為FTP服務(wù)器的登陸端口,ftpHost為String型,port為int型。    ftpClient.login(userName, passWord);// userName、passWord分別為FTP服務(wù)器的登陸用戶名和密碼    ftpClient.binary();    ftpClient.cd(path);// path為FTP服務(wù)器上保存上傳文件的路徑。    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("上傳文件失敗!請(qǐng)檢查系統(tǒng)FTP設(shè)置,并確認(rèn)FTP服務(wù)啟動(dòng)");  }}// 刪除文件至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服務(wù)器的IP地址,port為FTP服務(wù)器的登陸端口,ftpHost為String型,port為int型。    ftpClient.login(userName, passWord);// userName、passWord分別為FTP服務(wù)器的登陸用戶名和密碼    ftpClient.binary();    ftpClient.cd(path);// path為FTP服務(wù)器上保存上傳文件的路徑。    try {      ftpClient.sendServer("dele " + fileName + "/r/n");    } catch (Exception e) {      System.out.println("刪除文件失敗!請(qǐng)檢查系統(tǒng)FTP設(shè)置,并確認(rèn)FTP服務(wù)啟動(dòng)");    }    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服務(wù)器的IP地址,port為FTP服務(wù)器的登陸端口,ftpHost為String型,port為int型。    ftpClient.login(userName, passWord);// userName、passWord分別為FTP服務(wù)器的登陸用戶名和密碼    ftpClient.binary();    ftpClient.cd(path);// path為FTP服務(wù)器上保存上傳文件的路徑。    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("下載文件失敗!請(qǐng)檢查系統(tǒng)FTP設(shè)置,并確認(rèn)FTP服務(wù)啟動(dòng)");  }}//在ftp服務(wù)器上傳件文件夾  public boolean createDir(String path,FtpClient ftpClient) throws Exception{      //進(jìn)入到home文件夾下      ftpClient.cd("/home");      //創(chuàng)建遠(yuǎn)程文件夾      //遠(yuǎn)程命令包括      //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>//        在服務(wù)器上執(zhí)行命令,如果用sendServer來執(zhí)行遠(yuǎn)程命令(不能執(zhí)行本地FTP命令)的話,所有FTP命令都要加上/r/n<br>//          ftpclient.sendServer("XMKD /test/bb/r/n"); //執(zhí)行服務(wù)器上的FTP命令<br>//          ftpclient.readServerResponse一定要在sendServer后調(diào)用<br>//          nameList("/test")獲取指目錄下的文件列表<br>//          XMKD建立目錄,當(dāng)目錄存在的情況下再次創(chuàng)建目錄時(shí)報(bào)錯(cuò)<br>//          XRMD刪除目錄<br>//          DELE刪除文件<br>    //通過遠(yuǎn)程命令 穿件一個(gè)files文件夾    ftpClient.sendServer("MKD "+ path + "/r/n");    //這個(gè)方法必須在 這兩個(gè)方法中間調(diào)用 否則 命令不管用    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服務(wù)器參數(shù),包括登錄的用戶名密碼之類的。

package ftpDemo;public class KmConfig {  //主機(jī)ip  private String FtpHost = "";  //端口號(hào)  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;  }}

下面是測(cè)試代碼:

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) {    //設(shè)置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();    }  }}

以上代碼是小編給大家介紹關(guān)于Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法,希望大家喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 抚宁县| 霍林郭勒市| 合阳县| 南充市| 怀远县| 石狮市| 宜城市| 巴中市| 嘉鱼县| 六安市| 若羌县| 新干县| 灵寿县| 阿克苏市| 胶州市| 柳州市| 开阳县| 寿阳县| 双鸭山市| 新乡市| 呼和浩特市| 双牌县| 五莲县| 咸丰县| 望奎县| 营山县| 稷山县| 瓮安县| 烟台市| 磐石市| 玛沁县| 瑞金市| 阿坝| 通化市| 襄汾县| 定襄县| 宁津县| 毕节市| 建德市| 徐闻县| 怀柔区|