我正在努力确保在磁盘空间不足、网络问题或在流式传输到文件过程中可能发生的任何异常情况下输出文件的完整性。 有没有办法在写入磁盘之前预先计算 FileStream 校验和,然后检查文件是否正确写入。 这对我来说听起来有点荒谬,系统通过 checkSum 验证其自己导出的 XML 的完整性,通常另一端的工作是验证使用的文件是否符合其他系统生成的文件。
但这是我必须执行的要求。
她是我写成文件的流:
String xmlTransfer ="";
File testFile = new File("testFile.xml");
InputStream in = new ByteArrayInputStream(xmlTransfer.getBytes("utf-8"));
FileOutputStream out = new FileOutputStream(testFile)
byte[] buffer = new byte[2048];
int bytesRead;
while ((bytesRead = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesRead);
}
out.close();
in.close();
最佳答案
不,你无法预先计算出有多少数据会来自一个流。这根本不是流的工作方式。
如果您正在编写代码的两端,您可以做的是首先计算发送端的文件大小并在发送文件内容本身之前发送它。
关于java - 预计算文件流校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21574468/