如何使用java将文件从一个远程位置传输到另一个远程地点



我想编写java程序,将文件直接下载到远程服务器,而不是在本地机器上下载。

远程服务器是FTP/WebDAV

那么,java中是否有任何库可以直接将文件下载到远程ftp/WebDAV服务器,而不是将其保存到本地机器并上传。

请引导正确的方向

你的问题太宽泛了,但我建议你采取以下步骤:

1( 使用Java NIO 将文件下载到您的系统中

2( 获取您下载的文件并将其发送到您可以使用Ftp客户端访问的web服务器,如下所示:

FTPClient client = new FTPClient();
try {
client.connect("ftp.domain.com");
client.login("username", "pass");
FileInputStream fileInputStream = new FileInputStream("path_of_the_downloaded_file");
client.storeFile(filename, fileInputStream );
client.logout();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (fileInputStream != null) {
fileInputStream .close();
}
client.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}

====================================编辑=========================

回复评论:"但我不想在本地存储文件,甚至不临时">

然后,您只需要将其存储在一个字节数组中,并将字节数组转换为InputStream,然后将存储文件发送到您的服务器

FTPClient client = new FTPClient();
BufferedInputStream in = new BufferedInputStream(new URL("www.example.com/file.pdf").openStream());
byte[] bytes = IOUtils.toByteArray(in);
InputStream stream = new ByteArrayInputStream(bytes);
client.connect("ftp.domain.com");
client.login("username", "pass");
client.storeFile("fileName", stream);
stream.close();

相关内容

  • 没有找到相关文章

最新更新