如何使用 FTPClient 将文件存储为字节数组?

How to store file as byte array using FTPClient?

我正在开发 FTP- 用于连接 ftp 的客户端工具。

此时我需要通过这个工具上传到ftp。根据 this post 和第一个答案,可以使用 FileInputStream 来保存文件。但我想将文件存储为字节数组,而不是 FileInputStream

有什么办法吗?

可以使用ByteArrayOutputStream来存储字节,可以得到字节数组。

 InputStream baos = new ByteArrayOutputStream();
 // write bytes here
 baos.write(bytes)

//to get bytes 

byte[] bArr = baos.toByteArray();

只需使用ByteArrayInputStream 将包含您要上传的数据的字节数组包装起来,然后使用此流代替FileInputStream。例如。类似于:

byte[] mydata = <get your data>;
InputStream stream = new ByteArrayInputStream(mydata);
ftpClient.storeFile("remoteName", stream);
stream.close(); // Not strictly needed for ByteArrayInputStream