📅  最后修改于: 2023-12-03 15:31:33.063000             🧑  作者: Mango
有时候我们需要从远程服务器上获取文件并在 Java 应用程序中处理。这时候我们可以使用 Java 中的 URL 类和 InputStream 来实现该功能。
以下是获取远程文件的 Java 代码片段:
import java.io.*;
import java.net.*;
public class URLDemo {
public static void main(String[] args) {
try {
// 创建 URL 对象
URL url = new URL("http://example.com/image.jpg");
// 打开连接
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
// 获取输入流
InputStream in = connection.getInputStream();
// 读取数据
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int n = 0;
while ((n = in.read(buffer)) > 0) {
out.write(buffer, 0, n);
}
// 关闭输入流和输出流
in.close();
out.close();
// 将字节数组转换为文件
FileOutputStream file = new FileOutputStream("image.jpg");
file.write(out.toByteArray());
file.close();
System.out.println("File downloaded successfully!");
} catch (Exception e) {
System.out.println("Error: " + e.getMessage());
}
}
}
上述的代码需要连接到远程服务器并从中获取文件。以下是代码中涉及的几个关键步骤:
我们首先需要创建一个 URL 对象来连接到远程服务器。在上面的例子中,我们使用了“http://example.com/image.jpg”这个 URL。实际应用中,你需要将它替换为目标文件的 URL。
URL url = new URL("http://example.com/image.jpg");
我们使用 URL 对象的 openConnection() 方法打开与服务器的连接。在上面的例子中,我们使用了 HttpURLConnection 类型的连接。我们使用它来打开连接。
HttpURLConnection connection = (HttpURLConnection)url.openConnection();
connection.setRequestMethod("GET");
我们使用连接的 getInputStream() 方法获取输入流。通过输入流可以读取从远程服务器上返回的数据。
InputStream in = connection.getInputStream();
我们可以使用输入流来读取从远程服务器上获取的数据。在上述代码中,我们使用了 ByteArrayOutputStream 类来临时保存数据。我们可以使用输入流的 read() 方法读取每一个字节,并将其保存到 ByteArrayOutputStream 中。
ByteArrayOutputStream out = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int n = 0;
while ((n = in.read(buffer)) > 0) {
out.write(buffer, 0, n);
}
获取数据后,我们需要关闭输入流和 ByteArrayOutputStream 对象。
in.close();
out.close();
最后,我们把从远程服务器获取的数据转换为字节数组,并将其写到磁盘上作为文件。在上述代码中,我们使用 FileOutputStream 类来操作磁盘文件。我们使用它的 write() 方法将字节数组写到文件中。
FileOutputStream file = new FileOutputStream("image.jpg");
file.write(out.toByteArray());
file.close();
在本文中,我们介绍了如何使用 Java 代码从远程服务器获取文件。我们首先创建一个 URL 对象,然后打开与服务器的连接,并获取输入流。我们使用输入流来读取从远程服务器上获取的数据,并将其保存为字节数组。最后,我们把字节数组写到磁盘上作为文件进行保存。