我试图让这段代码工作。这是一个基本的 I/O 系统,它复制一个文件并将其粘贴到具有所选名称的同一目录中。它应该很简单,但由于某种原因程序运行,它创建了第二个文件,但随后卡住了。Java 进程的 CPU 占用率约为 5%,并且文件从未完成。它只复制一些数据,然后我想它在某个地方陷入了无限循环。
我已经将我的代码与Oracle 网站上的字节流教程进行了比较。
额外:我只是要求它输出它正在读取的内容,并且它卡在读取 value 的无限循环中255
。如果这有帮助。另外,我直接从 Oracle 网站编译了代码,它也做了同样的事情。
据我所知,这似乎是一致的。谁能告诉我我做错了什么?谢谢你。
(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");