我在 ByteArrayOutputStream 变量中有来自 3 个文件的数据。但是当我尝试通过 BufferedOutputStream 传递它时,它只发送最后一个文件的数据。
byte [] finalData = new byte[64000];
finalData = outputStream.toByteArray();
output.write(finalData, 0, finalData.length);
它以某种方式覆盖了 2 个文件的先前数据。
我在 ByteArrayOutputStream 变量中有来自 3 个文件的数据。但是当我尝试通过 BufferedOutputStream 传递它时,它只发送最后一个文件的数据。
byte [] finalData = new byte[64000];
finalData = outputStream.toByteArray();
output.write(finalData, 0, finalData.length);
它以某种方式覆盖了 2 个文件的先前数据。
ByteArrayOutputStream 变量。但是当我尝试通过 BufferedOutputStream 传递它时
我建议将文件直接写入 BufferedOutputStream 以减少内存副本。
它只发送最后一个文件的数据。
最有可能重复打开和关闭文件,每次都覆盖文件。您可以附加到文件,但最有效的方法是直接写入文件。
注意:要读取文件,您需要某种方法来确定文件的开始和结束位置。一种方法是将索引写入文件末尾(例如,像 ZIP 那样)或写入具有偏移量的第二个文件,或将长度写入附加消息的开头。如果它是一种文本格式,您可能有另一种方法来确定一个开始/结束的位置。