日期:2014-05-20  浏览次数:20707 次

文件有关操作,重命名失败
现在main类中调用test(){ modif();addFile();}不能成功。   但是变成main中直接用addFile();就可以成功。
test和addFile是在main之外的另一个类中写的,addFile中主要是对已存在的一个文件log.txt进行重命名,然后再新建log.txt,  modify中是对log.txt进行写操作。 并且在addFile()函数体中开始处对读写流进行了close操作。   求:如何才能使得调用test执行成功,并作解释,谢谢。。。
------解决方案--------------------
modify和addFile都对同个文件读写操作没有file.close就会有权限冲突了。你把异常贴出来看看
------解决方案--------------------
下面这段代码,打开了文件输入流,而没有关闭,导致改名不成功.
private boolean isTooLarge() throws IOException{
long space;
space = new FileInputStream(file).available()/1024;//打开输入流而没关闭。
System.out.println("Log.isTooLarge()"+space);
return (space > MAX_FILE_SIZE); 
}

如此改一下,就ok了。

private boolean isTooLarge() throws IOException
{
long space;
FileInputStream fis=new FileInputStream(file);
space = fis.available()/1024;
fis.close();    //关闭流!!!
System.out.println("Log.isTooLarge()"+space);
return (space > MAX_FILE_SIZE); 
}