Java下载远程服务器文件到本地(基于HTTP协议和SSH2协议)

Java是一种面向对象的编程语言,可以用来下载远程服务器文件到本地,这里介绍两种方式,一种是基于HTTP协议,一种是基于SSH2协议。

基于HTTP协议

要使用Java来下载远程服务器文件,需要使用java.net.URL类来定义要下载的文件的URL,使用java.net.URLConnection类来建立到远程服务器的连接,使用java.io.BufferedInputStream类来从远程服务器读取文件,并将文件写入本地文件中。

import java.io.*;
import java.net.*;

public class DownloadFile {
    public static void main(String[] args) {
        try {
            // 定义要下载的文件的URL
            URL url = new URL("http://example.com/example.zip");
            // 建立到远程服务器的连接
            URLConnection conn = url.openConnection();
            // 打开本地文件
            FileOutputStream fos = new FileOutputStream("example.zip");
            // 从远程服务器读取文件
            BufferedInputStream bis = new BufferedInputStream(conn.getInputStream());
            byte[] buffer = new byte[1024];
            int size;
            while ((size = bis.read(buffer)) != -1) {
                // 写入本地文件
                fos.write(buffer, 0, size);
            }
            fos.close();
            bis.close();
            System.out.println("下载完成");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

基于SSH2协议

要使用Java来下载远程服务器文件,需要使用com.jcraft.jsch.JSch类来定义连接的参数,使用com.jcraft.jsch.Session类来建立到远程服务器的连接,使用com.jcraft.jsch.ChannelSftp类来从远程服务器读取文件,并将文件写入本地文件中。

import com.jcraft.jsch.*;

public class DownloadFile {
    public static void main(String[] args) {
        try {
            // 定义连接参数
            JSch jsch = new JSch();
            jsch.setKnownHosts("/path/to/known_hosts");
            jsch.setConfig("StrictHostKeyChecking", "no");
            Session session = jsch.getSession("username", "hostname", 22);
            session.setPassword("password");
            session.connect();
            // 建立到远程服务器的连接
            Channel channel = session.openChannel("sftp");
            channel.connect();
            ChannelSftp sftpChannel = (ChannelSftp) channel;
            // 打开本地文件
            FileOutputStream fos = new FileOutputStream("example.zip");
            // 从远程服务器读取文件
            sftpChannel.get("/path/to/example.zip", fos);
            fos.close();
            sftpChannel.exit();
            session.disconnect();
            System.out.println("下载完成");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

以上就是使用Java来下载远程服务器文件到本地的两种方式,分别基于HTTP协议和SSH2协议。

本文链接:http://task.lmcjl.com/news/2657.html

展开阅读全文