У меня есть много байт [] штук для записи в файл и эти куски своего рода большие, и я думаю, что байты становятся смешаны ...FileOutputStream ждать окончания написания
Есть ли какие-либо методы, чтобы ждать для .WRITE (байт []), чтобы закончить работу или другие способы решения этой проблемы? Когда я смотрю файл, первая половина в порядке, тогда, когда я начинаю писать вторую половину, некоторое время заканчивается первой половиной ... Байт-массив хорош, я тестировал их. Если вам нужно какое-либо объяснение кода, не стесняйтесь спрашивать.
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) {
}
Вам не нужно fos.close(), когда вы используете попробовать с resourcesstatement – snovelli
Хорошо, Спасибо за совет! – EasyCode
Я думаю, вы говорите, что подозреваете, что вызовы 'fos.write' не происходят последовательно. Будьте уверены, они есть. И вы можете избавиться от вызова 'fos.flush()', это нецелесообразно, кроме как замедлить работу. – VGR