我有很多 byte[] 片段要写入文件,这些片段有点大,我认为字节正在混合......
是否有任何方法可以等待 .write(byte[]) 完成他的工作或其他方法来处理这个问题? 当我观看文件时,前半部分没问题,然后当我开始编写后半部分时,有时它会以前半部分结束......字节数组很好,我测试了它们。 如果您需要任何代码解释,请随时询问。
try (FileOutputStream fos = new FileOutputStream(Main.newFile)) {
for (int y = 0; y < piecesCount; y++) {
if (this.myList[y] == 1) {
fos.write(this.piecesArray.get(y).piece);
fos.flush();
System.out.println("Im writing " + y + " piece");
} else {
y--;
}
}
fos.close();
} catch (FileNotFoundException ex) {
} catch (IOException | InterruptedException ex) {
}
最佳答案
好吧,如果 piecesCount
是一个 long
,则 int y
变量可能会溢出并开始写入数组的第一部分。
如果情况并非如此,我在这段代码中没有看到可能导致您所描述的情况的其他错误。在这种情况下,一定有什么事情发生
piecesArray.get(y).piece
关于java - FileOutputStream 等待写入完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428394/