## 用java语言控制ftp服务器上传输和接受文件 ##


用java语言控制ftp服务器上传输和接受文件

  • 我们先从网上下载一个专门的jar包(commons-net-3.5。jar),用于ftp服务器传输和接受文件。
  • 在新建的项目中,先拖入jar包,点击左键,bulid path里面configure buildpath
    我们将jar包导入
  • 在将commons.jar正式导入环境,如图上的步骤
  • 这里写图片描述
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.SocketException;
import java.nio.charset.Charset;
import java.nio.charset.CharsetDecoder;
import java.nio.charset.CharsetEncoder;
import java.util.Scanner;

import org.apache.commons.net.ftp.FTPClient;

public class FtpTransmitFile {
    private FTPClient ftpClient = null;
    private int port = 0;
    private String ip = null;
    private String username = null;
    private String password = null;

    // 我们再写一个构造函数
    public FtpTransmitFile(String ip, int port, String username, String password) {
        ftpClient = new FTPClient();
        this.port = port;
        this.ip = ip;
        this.username = username;
        this.password = password;

    }

    // ftp客户端登陆
    public void login() {
        try {
            // ftp客户端连接ip,返回值是void
            ftpClient.connect(ip, port);
            // ftp客户端登陆,返回值是布尔
            boolean b1 = ftpClient.login(username, password);
            ftpClient.setCharset(Charset.forName("UTF-8"));
            System.out.println(b1);

        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        ;
    }

    // 把文件传输到ftp上,soureFile要传上去的源文件,putFile传上去的文件命名
    public void PutFile(String PutFile, String soureFile) {
        try {
            // 给我们直接写好了方法,调用就可以了,将源文件抽成流
            ftpClient.storeFile(PutFile, new FileInputStream(soureFile));
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public void getFile(String sourceFile, String getFile) {
        // 给我们直接写好了方法,调用就可以了,将输出流写入新的文件里面
        try {
            ftpClient.retrieveFile(sourceFile, new FileOutputStream(getFile));
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        // ftp的端口21
        FtpTransmitFile ftp = new FtpTransmitFile("192.168.20.111", 21, "ms", "ms");
        ftp.login();
        ftp.PutFile("h.jar", "commons-net-3.5.jar");
        ftp.getFile("jsoup-1.10.2.jar", "1.jar");
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值