File inputFile = new File("abc.txt");
File tempFile = new File("temp.txt");
try{
FileInputStream fis = new FileInputStream(tempFile);
byte[] data = new byte[(int) tempFile.length()];
fis.read(data);
fis.close();
String source = new String(data, "UTF-8");
try{
while(!inputFile.renameTo(inputFile)) {
Thread.sleep(10);
}
}
catch(Exception e)
{
System.out.println("Some error occured");
}
FileWriter newfile = new FileWriter(inputFile, false);
newfile.write(source);
newfile.close();
if (!tempFile.delete()) {
System.out.println("Could not delete file");
return;
}
else
{
System.out.println("Successful");
}
}
catch(IOException e1)
{
e1.printStackTrace();
}
在此计划中,我尝试将data
中的所有temp.txt
复制到字符串变量source
中。然后用该字符串覆盖文件abc.txt
。
起初它向我展示了一个例外:
"进程无法访问该文件,因为它正由另一个进程使用。"
然后我在互联网上找到了一个重命名文件的解决方案,如代码所示。现在,它没有给我错误,但程序根本没有终止。这个程序有什么问题?为什么不给出任何错误?请帮帮我。非常感谢你。
PS:我使用的是Windows 10和Eclipse Juno作为IDE。
答案 0 :(得分:2)
您编写的程序为我工作并成功终止。无需重命名文件。
try
{
String content = new String(Files.readAllBytes(Paths.get("temp.txt")));
Files.write(Paths.get("abc.txt"), content.getBytes(), StandardOpenOption.CREATE);
}
catch(Exception ex)
{
ex.printStackTrace();
}