假设我的文件夹中有一个名为input.zip的文件。
我想将此文件从客户端传输到服务器,所以我当前正在做的是:
//client side
FileInputStream fis = new FileInputStream("input.zip");
while(fis.read(buffer) > 0) { ... }
简而言之:在客户端内部,我使用 FileInputStream.read(buffer)
将文件分成许多字节数组。
我将每个数组发送到服务器,服务器知道每个数组的索引(即第一个数组的索引为 0,第二个数组的索引为 1,依此类推)。
鉴于在服务器端我拥有所有字节数组并且我知道它们发送的顺序,我想构建一个大字节数组来存储它们。
如何构建这个大字节数组并将文件(应等于 input.zip)写入名为 output.zip 的文件中?
最佳答案
InputStream 和 OutputStream 是按顺序处理的。
for (;;) {
int nread = fis.read(buffer);
if.(nread <= 0) {
break;
}
fos.write(buffer, 0, nread);
}
最后一个读取缓冲区未完全填满。
实用程序类 Files 可以做到这一点以及更多。
Path path = Paths.get(“...“);
Files.copy(path, fos);
关于java - 从字节数组组重新创建文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733697/