java中使用renameTo函数的相关经验
来源:互联网 发布:医生用药app软件 编辑:程序博客网 时间:2024/06/06 01:40
最近在做新的项目,发现了一个问题:在java中使用reNameTo函数有时候会失败。找了很长时间的问题,也没有一个确切的答案。
在java底层的api中对此函数的使用有说明——使用时要关心一下操作系统使用的文件系统,于是想想就别用了。
既然是重命名,那就用“先拷贝在删除”的操作来替代renameto函数。代码很简单,如下:
public class FileTools {private static Logger _log = Logger.getLogger(FileTools.class);/** * 文件重命名 * @param oldname * @param newname */public static void reNameFile(String oldname, String newname){_log.debug("reNameFile1");try{FileUtils.copyFile(new File(oldname), new File(newname));_log.debug("reNameFile2");// 删除原文件new File(oldname).deleteOnExit();_log.debug("reNameFile3");}catch(IOException ioex){_log.error("文件重命名失败:", ioex);}_log.debug("reNameFile4");}public static void main(String[] args) throws IOException, InterruptedException {InputStream input = new FileInputStream(new File("d:\\wujh.cfg"));_log.debug(input.read());_log.debug("main1");reNameFile("d:\\wujh.cfg", "d:\\wujh1.cfg");_log.debug("main2");Thread.sleep(50000);_log.debug(input.read());_log.debug("main3");input.close();}}我觉得如果有文件被打开的时候再去删除文件就会报错,但是我的想法是错误的,执行结果如下
2011-10-17 11:52:27,656-[main][DEBUG]-[FileTools]832011-10-17 11:52:27,656-[main][DEBUG]-[FileTools]main12011-10-17 11:52:27,656-[main][DEBUG]-[FileTools]reNameFile12011-10-17 11:52:27,672-[main][DEBUG]-[FileTools]reNameFile22011-10-17 11:52:27,672-[main][DEBUG]-[FileTools]reNameFile32011-10-17 11:52:27,672-[main][DEBUG]-[FileTools]reNameFile42011-10-17 11:52:27,672-[main][DEBUG]-[FileTools]main22011-10-17 11:53:17,686-[main][DEBUG]-[FileTools]682011-10-17 11:53:17,686-[main][DEBUG]-[FileTools]main3从执行结果可以看出reNameFile函数已经执行完成了但是被删除的文件的内容还是能够被读取出来的,最后看了一下文件的变化情况,发现:reNameFile函数虽然执行完成但是文件却没有被删除,直到close后才被删除。
- java中使用renameTo函数的相关经验
- 关于java中 renameTo()方法的不成功
- 关于java中 renameTo()方法的不成功
- java renameto的陷阱
- Java中关于renameTo方法重命名文件失败的问题
- Java File中renameTo的介绍和使用说明
- java的File.renameTo(File)方法
- 慎用Java的File.renameto(File)
- 慎用java的File#renameTo(File)方法
- java 中的renameTO/java.io.File中mkdir和mkdirs的区别
- java修改文件名-renameTo()方法的使用实例,复制一个文件或者叫转存一个文件
- Java File RenameTo函数返回false及正确写法
- Java中map相关的函数
- JAVA中biginteger的相关函数
- JavaScript自定义函数中字符串参数使用的经验
- Java File renameTo
- 请慎用java的File的renameTo(File)方法
- java中的File对象的renameTo方法的理解
- 得到指定节点下的图片
- oracle10g数据库常见问题总结
- System.load 和 System.loadLibrary详解-JNI
- SQL Server 2005 索引优化
- jquery validate 2
- java中使用renameTo函数的相关经验
- JAVA温习:多线程同步的方法
- 使用pcomm库sio_cnt_irq(port,CntIrq,1)的函数相关疑问
- js 截取字符串
- jquery插件 - imageScroller
- JavaScript内存泄漏
- 网络游戏服务器设计
- 在线程中调用多媒体定时器,当定时器超时时,出现内存错误!
- 硬链接和软链接