このコードを機能させようとしています。これは、1 つのファイルをコピーし、選択した名前で同じディレクトリに貼り付ける基本的な I/O システムです。単純なはずですが、何らかの理由でプログラムが実行され、2 番目のファイルが作成されますが、スタックします。Java プロセスの CPU は約 5% にとどまり、ファイルは決して完了しません。一部のデータのみをコピーするだけで、どこかで無限ループに陥っていると思います。
私はすでに自分のコードをOracle Web サイトの Byte Streams チュートリアルと比較しました。
追加: 読み取っているものを出力するように依頼したところ、 value を読み取っている無限ループでスタックしています255
。それが役立つ場合。また、Oracle Web サイトから直接コードをコンパイルしましたが、同じことを行います。
私が言えることから、それは一貫しているように見えます。誰が私が間違っているのか教えてもらえますか? ありがとうございました。
(PS: 私は Eclipse 4.2.0 を使用しています)。
これは、ファイルをコピーするために私がやっていることです:
package fileIO;
import java.io.*;
import system.Debug;
public class fileUtil {
public static void copyFileTo(String file2Copy, String file2Paste) {
FileInputStream fin = null;
FileOutputStream fout = null;
try {
fin = new FileInputStream(file2Copy);
fout = new FileOutputStream(file2Paste);
int aByte;
while ((aByte = fin.read()) != -1) {
fout.write(aByte);
}
} catch (FileNotFoundException e) {
Debug.out("Error: File Not Found: " + file2Copy);
} catch (IOException e) {
Debug.out("Error: File IO Exception Copying: " + file2Copy);
} catch (Exception e) {
Debug.out("Error: General Exception Closing Streams:" + file2Copy);
} finally {
try {
fin.close();
fout.close();
} catch (IOException e) {
Debug.out("Error: File IO Exception Closing Streams: " + file2Copy);
} catch (Exception e) {
Debug.out("Error: General Exception Closing Streams:" + file2Copy);
}
}
}
}
私のプログラムのメインクラスでは、これを実行します:
fileUtil.copyFileTo("google.bmp", "google(1).bmp");