Java是一种面向对象的编程语言,可以用来下载远程服务器文件到本地,这里介绍两种方式,一种是基于HTTP协议,一种是基于SSH2协议。
要使用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(); } } }
要使用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