私が何かをするなら私は知っています
copyFromInToOut(new FileInputStream(f1), new FileOutputStream(f2));
System.gc();
それらに対してGCを実行し、それらFileInputStream
を閉じます。しかし、私がそうするなら
copyFromInToOut(new BufferedInputStream(new FileInputStream(f1)), new BufferedOutputStream(new FileOutputStream(f2));
System.gc();
FileOutputStreamがBufferedOutputStreamの前にGCされ、バッファーがフラッシュされないという危険性はありますか?これよりも多くの手順が必要なため、flush、closeを呼び出すことはできません。最初に、bufferedinputstreamを宣言し、渡してから、closeを呼び出します。または私はこれを安全に行うことができますか?