n個のファイルをマージして単一のファイルにしようとしています。しかし、関数で奇妙な動作が発生しました。関数はn秒間にx回呼び出されます。マージするファイルが 100 個あるとします。毎秒 5 つのファイルを呼び出してマージします。次の 1 秒で量は 2 倍の 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();
}
}
*私の英語でごめんなさい