Я пытаюсь объединить n частей файла в один файл. Но у меня странное поведение в моей функции. Функция вызывается x раз за n секунд. Допустим, у меня есть 100 файлов, которые я буду объединять, каждую секунду я вызываю 5 файлов и объединяю их. и в следующую секунду сумма удваивается до 10, но с 1 по 5 это тот же файл, что и раньше, остальное - новый файл. Он работает нормально, но в какой-то момент дает нулевой байт или иногда дает правильный размер.
Не могли бы вы помочь мне найти ошибку в моей функции ниже?
public void mergeFile(list<String> fileList, int x) {
int count = 0;
BufferedOutputStream out = null;
try {
out = new BufferedOutputStream(new FileOutputStream("Test.doc"));
for (String file : fileList) {
InputStream in = new BufferedInputStream(new FileInputStream(file));
byte[] buff = new byte[1024];
in.read(buff);
out.write(buff);
in.close();
count++;
if (count == x) {
break;
}
}
out.flush();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
*Извините за мой английский
mergeFile
вызывается из потока? - person kv-prajapati   schedule 13.07.2012