欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java上傳文件FTP服務(wù)器代碼實(shí)例

 更新時間:2020年12月08日 10:56:51   作者:久曲健  
這篇文章主要介紹了Java上傳文件FTP服務(wù)器代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

FTP服務(wù)器(File Transfer Protocol Server)是在互聯(lián)網(wǎng)上提供文件存儲和訪問服務(wù)的計算機(jī),它們依照FTP協(xié)議提供服務(wù)。 FTP是File Transfer Protocol(文件傳輸協(xié)議)。顧名思義,就是專門用來傳輸文件的協(xié)議。簡單地說,支持FTP協(xié)議的服務(wù)器就是FTP服務(wù)器。

在實(shí)際的應(yīng)用中,通常是通過程序來進(jìn)行文件的上傳。

1.實(shí)現(xiàn)java上傳文件到ftp服務(wù)器中

2.新建maven項(xiàng)目

添加依賴

<dependency>
  <groupId>commons-net</groupId>
  <artifactId>commons-net</artifactId>
  <version>3.3</version>
</dependency>

3.實(shí)例代碼:

package com.test.fto.demo;
/**
ftp鏈接常量
*/
public class Ftp {
	private String ipAddr;
	//ip地址
	private Integer port;
	//端口號
	private String userName;
	//用戶名
	private String pwd;
	//密碼
	private String path;
	//aaa路徑
	public String getIpAddr() {
		return ipAddr;
	}
	public void setIpAddr(String ipAddr) {
		this.ipAddr = ipAddr;
	}
	public Integer getPort() {
		return port;
	}
	public void setPort(Integer port) {
		this.port = port;
	}
	public String getUserName() {
		return userName;
	}
	public void setUserName(String userName) {
		this.userName = userName;
	}
	public String getPwd() {
		return pwd;
	}
	public void setPwd(String pwd) {
		this.pwd = pwd;
	}
	public String getPath() {
		return path;
	}
	public void setPath(String path) {
		this.path = path;
	}
}

測試代碼:

package com.test.fto.demo;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.testng.annotations.Test;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class FtpUtil {

private static FTPClient ftp;

/**
 * 獲取ftp連接
 *
 * @param f
 * @return
 * @throws Exception
 */
public static boolean connectFtp(Ftp f) throws Exception {
  ftp = new FTPClient();
  boolean flag = false;
  int reply;
  if (f.getPort() == null) {
    ftp.connect(f.getIpAddr(), 21);
  } else {
    ftp.connect(f.getIpAddr(), f.getPort());
  }
  ftp.login(f.getUserName(), f.getPwd());
  ftp.setFileType(FTPClient.BINARY_FILE_TYPE);
  reply = ftp.getReplyCode();
  if (!FTPReply.isPositiveCompletion(reply)) {
    ftp.disconnect();
    return flag;
  }
  ftp.changeWorkingDirectory(f.getPath());
  flag = true;
  return flag;
}

/**
 * 關(guān)閉ftp連接
 */
public static void closeFtp() {
  if (ftp != null && ftp.isConnected()) {
    try {
      ftp.logout();
      ftp.disconnect();
    } catch (IOException e) {
      e.printStackTrace();
    }
  }
}

/**
 * ftp上傳文件
 *
 * @param f
 * @throws Exception
 */
public static void upload(File f) throws Exception {
  if (f.isDirectory()) {
    ftp.makeDirectory(f.getName());
    ftp.changeWorkingDirectory(f.getName());
    String[] files = f.list();
    for (String fstr : files) {
      File file1 = new File(f.getPath() + "/" + fstr);
      if (file1.isDirectory()) {
        upload(file1);
        ftp.changeToParentDirectory();
      } else {
        File file2 = new File(f.getPath() + "/" + fstr);
        FileInputStream input = new FileInputStream(file2);
        ftp.storeFile(file2.getName(), input);
        input.close();
      }
    }
  } else {
    File file2 = new File(f.getPath());
    FileInputStream input = new FileInputStream(file2);
    ftp.storeFile(file2.getName(), input);
    input.close();
  }
}
@Test
public static void test() throws Exception {
  Ftp f = new Ftp();
  f.setIpAddr("your ip");
  f.setUserName("username");
  f.setPwd("password");
  FtpUtil.connectFtp(f);
  File file = new File("F:/robotium-solo-5.6.1.jar");
  FtpUtil.upload(file);//把文件上傳在ftp上
  System.out.println("上傳文件完成。。。。");
}
}

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

相關(guān)文章

  • 解決Java字符串JSON轉(zhuǎn)換異常:cn.hutool.json.JSONException:?Mismatched?hr?and?body

    解決Java字符串JSON轉(zhuǎn)換異常:cn.hutool.json.JSONException:?Mismatched?

    這篇文章主要給大家介紹了關(guān)于如何解決Java字符串JSON轉(zhuǎn)換異常:cn.hutool.json.JSONException:?Mismatched?hr?and?body的相關(guān)資料,文中將解決的辦法通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-01-01
  • java高級用法之注解和反射講義

    java高級用法之注解和反射講義

    這篇文章主要給大家介紹了關(guān)于java高級用法之注解和反射講義的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • Spring Security Remember me使用及原理詳解

    Spring Security Remember me使用及原理詳解

    這篇文章主要介紹了Spring Security Remember me使用及原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解

    這篇文章主要介紹了Java中的值傳遞以及引用傳遞和數(shù)組傳遞詳解,Java不允許程序員選擇按值傳遞還是按引用傳遞各個參數(shù),就對象而言,不是將對象本身傳遞給方法,而是將對象的的引用或者說對象的首地址傳遞給方法,引用本身是按值傳遞的,需要的朋友可以參考下
    2023-07-07
  • 詳解Java虛擬機(jī)30個常用知識點(diǎn)之1——類文件結(jié)構(gòu)

    詳解Java虛擬機(jī)30個常用知識點(diǎn)之1——類文件結(jié)構(gòu)

    這篇文章主要介紹了Java虛擬機(jī)類文件結(jié)構(gòu),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Java中StringBuilder類的介紹與常用方法

    Java中StringBuilder類的介紹與常用方法

    StringBuilder是一個可變的字符串的操作類,我們可以把它看成是一個對象容器,下面這篇文章主要給大家介紹了關(guān)于Java中StringBuilder類的介紹與常用方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-12-12
  • 詳解Java9新特性中的模塊化與反射機(jī)制

    詳解Java9新特性中的模塊化與反射機(jī)制

    Java9中的一個重大變化就是引入了模塊化系統(tǒng),這個系統(tǒng)使得Java應(yīng)用程序的構(gòu)建、發(fā)布和部署更加具有可控性和可重用性,與此同時,Java9還改進(jìn)了反射機(jī)制,讓它與模塊化系統(tǒng)更好地配合,本文通過代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • java 解壓與壓縮文件夾的實(shí)例詳解

    java 解壓與壓縮文件夾的實(shí)例詳解

    這篇文章主要介紹了 java 解壓與壓縮文件夾的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,讓大家實(shí)現(xiàn)這樣的功能,掌握這樣的方法,需要的朋友可以參考下
    2017-10-10
  • 淺談Java中ArrayList線程不安全怎么辦

    淺談Java中ArrayList線程不安全怎么辦

    本文主要介紹了Java中ArrayList線程不安全怎么辦,主要有三種解決的方法,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • Mybatis表的關(guān)聯(lián)查詢詳情

    Mybatis表的關(guān)聯(lián)查詢詳情

    這篇文章主要介紹了Mybatis表的關(guān)聯(lián)查詢詳情,文章通過圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-09-09

最新評論