一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務(wù)器之家 - 編程語言 - JAVA教程 - Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法

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

2020-01-16 16:39mrr JAVA教程

這篇文章主要介紹了Java實(shí)現(xiàn)ftp上傳下載、刪除文件及在ftp服務(wù)器上傳文件夾的方法,需要的朋友可以參考下

一個(gè)JAVA 實(shí)現(xiàn)FTP功能的代碼,包括了服務(wù)器的設(shè)置模塊,并包括有上傳文件至FTP的通用方法、下載文件的通用方法以及刪除文件、在ftp服務(wù)器上傳文件夾、檢測(cè)文件夾是否存在等,里面的有些代碼對(duì)編寫JAVA文件上傳或許有參考價(jià)值,Java FTP主文件代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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ù),包括登錄的用戶名密碼之類的。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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è)試代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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ù)器上傳文件夾的方法,希望大家喜歡。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精东影业传媒全部作品 | 青青成人在线 | 国产综合图区 | 美人的淫事[纯hh] | 国产精品视频网 | 四虎影院免费视频 | 性xxx欧美 | 1024免费永久福利视频 | 2021国产麻豆剧传媒剧情动漫 | 校草让我脱了内裤给全班看 | 学生小泬无遮挡女HD | 欧美黑大吊 | 女人被男人躁得好爽免费视频 | 啊哈用力cao我 | 涩色爱| 91在线精品国产 | 人人人人看人人人做人人 | 精品网站一区二区三区网站 | 114级毛片免费观看 1024亚洲天堂 | 亚洲精品综合一二三区在线 | 9丨精品国产高清自在线看 9久热这里只有精品免费 | 欧美国产在线视频 | 玩高中女同桌肉色短丝袜脚文 | 免费被黄网站在观看 | bbbbbbaaaaaa毛片| 亚洲日本中文字幕天堂网 | 亚洲高清国产品国语在线观看 | 超碰97| 欧美国产影院 | 日韩在线观看网址 | 双性受合不垅腿攻np | 国色天香视频资源网 | 30分钟的高清视频在线观看 | 精品香蕉99久久久久网站 | 免费国产在线观看 | 日韩国产欧美视频 | 91精品国产91久久 | 亚洲剧情在线 | 欧美成人免费观看国产 | 亚洲国产一区 | 久久这里只有精品视频9 |