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

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

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

服務(wù)器之家 - 編程語言 - JAVA教程 - Java FTPClient實(shí)現(xiàn)文件上傳下載

Java FTPClient實(shí)現(xiàn)文件上傳下載

2020-04-18 12:01lijiao JAVA教程

這篇文章主要為大家詳細(xì)介紹了Java FTPClient實(shí)現(xiàn)文件上傳下載的相關(guān)資料,需要的朋友可以參考下

在JAVA程序中,經(jīng)常需要和FTP打交道,比如向FTP服務(wù)器上傳文件、下載文件,本文簡單介紹如何利用jakarta commons中的FTPClient(在commons-net包中)實(shí)現(xiàn)上傳下載文件。
所用到的jar包有: 
commons-net-1.4.1.jar 
jakarta-oro.jar 

一、上傳文件

?
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
文件上傳源代碼
   /**
  * Description: 向FTP服務(wù)器上傳文件
  * @Version1.0
  * @param url FTP服務(wù)器hostname
  * @param port FTP服務(wù)器端口
  * @param username FTP登錄賬號(hào)
  * @param password FTP登錄密碼
  * @param path FTP服務(wù)器保存目錄
  * @param filename 上傳到FTP服務(wù)器上的文件名
  * @param input 輸入流
  * @return 成功返回true,否則返回false
  */
 public static boolean uploadFile(
   String url,//FTP服務(wù)器hostname
   int port,//FTP服務(wù)器端口
   String username, // FTP登錄賬號(hào)
   String password, //FTP登錄密碼
   String path, //FTP服務(wù)器保存目錄
   String filename, //上傳到FTP服務(wù)器上的文件名
   InputStream input // 輸入流
   ) {
  boolean success = false;
  FTPClient ftp = new FTPClient();
  try {
   int reply;
   ftp.connect(url, port);//連接FTP服務(wù)器 
   //如果采用默認(rèn)端口,可以使用ftp.connect(url)的方式直接連接FTP服務(wù)器 
   ftp.login(username, password);//登錄 
   reply = ftp.getReplyCode();
   if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return success;
   }
   ftp.changeWorkingDirectory(path);
   ftp.storeFile(filename, input);   
    
   input.close();
   ftp.logout();
   success = true;
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   if (ftp.isConnected()) {
    try {
     ftp.disconnect();
    } catch (IOException ioe) {
    }
   }
  }
  return success;
 }

以下是文件上傳的測(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
/**
 * 將本地文件上傳到FTP服務(wù)器上
 *
 */
public void testUpLoadFromDisk(){
 try {
  FileInputStream in=new FileInputStream(new File("D:/test.txt"));
  boolean flag = uploadFile("127.0.0.1", 21, "administrator", "zyuc2011", "test", "test.txt", in);
  System.out.println(flag);
 } catch (FileNotFoundException e) {
  e.printStackTrace();
 
}
/**
 * 在FTP服務(wù)器上生成一個(gè)文件,并將一個(gè)字符串寫入到該文件中
 *
 */
public void testUpLoadFromString(){
 try {
  String str = "這是要寫入的字符串!";
  InputStream input = new ByteArrayInputStream(str.getBytes("utf-8"));
  boolean flag = uploadFile("127.0.0.1", 21, "administrator", "zyuc2011", "test", "test.txt", input);
  System.out.println(flag);
 } catch (UnsupportedEncodingException e) {
  e.printStackTrace();
 }
}

二、文件下載
文件下載源代碼  

?
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
/**
 * Description: 從FTP服務(wù)器下載文件
 * @Version1.0
 * @param url FTP服務(wù)器hostname
 * @param port FTP服務(wù)器端口
 * @param username FTP登錄賬號(hào)
 * @param password FTP登錄密碼
 * @param remotePath FTP服務(wù)器上的相對(duì)路徑
 * @param fileName 要下載的文件名
 * @param localPath 下載后保存到本地的路徑
 * @return
 */
public static boolean downFile(
  String url, //FTP服務(wù)器hostname
  int port,//FTP服務(wù)器端口
  String username, //FTP登錄賬號(hào)
  String password, //FTP登錄密碼
  String remotePath,//FTP服務(wù)器上的相對(duì)路徑
  String fileName,//要下載的文件名
  String localPath//下載后保存到本地的路徑
  ) {
 boolean success = false;
 FTPClient ftp = new FTPClient();
 try {
  int reply;
  ftp.connect(url, port);
  //如果采用默認(rèn)端口,可以使用ftp.connect(url)的方式直接連接FTP服務(wù)器 
  ftp.login(username, password);//登錄 
  reply = ftp.getReplyCode();
  if (!FTPReply.isPositiveCompletion(reply)) {
   ftp.disconnect();
   return success;
  }
  ftp.changeWorkingDirectory(remotePath);//轉(zhuǎn)移到FTP服務(wù)器目錄 
  FTPFile[] fs = ftp.listFiles();
  for(FTPFile ff:fs){
   if(ff.getName().equals(fileName)){
    File localFile = new File(localPath+"/"+ff.getName());
    OutputStream is = new FileOutputStream(localFile); 
    ftp.retrieveFile(ff.getName(), is);
    is.close();
   }
  }
   
  ftp.logout();
  success = true;
 } catch (IOException e) {
  e.printStackTrace();
 } finally {
  if (ftp.isConnected()) {
   try {
    ftp.disconnect();
   } catch (IOException ioe) {
   }
  }
 }
 return success;
}

以下是文件下載的測(cè)試用例:

?
1
2
3
4
5
6
7
8
9
10
11
12
/**
 * 將FTP服務(wù)器上文件下載到本地
 *
 */
public void testDownFile(){
 try {
  boolean flag = downFile("127.0.0.1", 21, "administrator", "zyuc2011", "test", "test.txt", "D:/");
  System.out.println(flag);
 } catch (Exception e) {
  e.printStackTrace();
 }  
}

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 出水小说| 国内交换一区二区三区 | 国产老熟 | 国产成人在线小视频 | 亚洲国产综合久久久无码色伦 | 日本剧情片在线播放中文版 | 91精品国产综合久久福利 | 欧美日韩国产另类一区二区三区 | 日本捏胸吃奶视频免费 | 51精品 | 性色生活片在线观看 | 亚洲欧美日韩国产综合专区 | 亚洲精品国产福利片 | 久久xxxx| 俺去啦最新官网 | 艾秋麻豆果冻传媒老狼仙踪林 | 放荡的女老板bd中文字幕 | julianann在厨房 | a级特黄毛片免费观看 | 男人疯狂进女人下部视频动漫 | 国产在线观看a | 调教车文| 公交车强校花系列小说 | www.毛片在线观看 | 亚洲精品国产精麻豆久久99 | bl高h荡肉古代np | 亚洲成综合人影院在院播放 | 91超级碰 | 日韩一级生活片 | 花蝴蝶www| 欧美一区二区三区久久久 | 欧美大片一区 | 日本无翼乌漫画 | 久久青青草视频在线观 | 男人使劲躁女人小视频 | 成人福利在线观看 | 国内精品久久久久久不卡影院 | 国产精品对白刺激久久久 | 3p文两男一女办公室高h | 国产日产欧产精品精品软件 | 香蕉eeww99国产精选播放 |