您的位置:首页 > 编程语言 > Java开发

java修改文件名-renameTo()方法的使用实例,复制一个文件或者叫转存一个文件

2017-05-24 09:36 911 查看
使用Java语言,修改一个文件的名称,包括文件类型啥的。

/**
* 重命名一个文件:将原来的文件直接修改
*/
private static void testRenameFile() {
String filePath = "D:/test/我是.conf";
try {
File src = new File(filePath);
filePath += ".properties";
File des = new File(filePath);
if (des.exists()) {
boolean res = des.delete();
if (!res) {
System.out.println("Failed to delete file");
}
}
if (!src.renameTo(des)) {
System.out.println("Failed to renameTo file");
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}


下面是操作前后的,对比截图。



稍加说明:

可见是在原来的文件上直接修改的,重命名之后,原来的文件就不见了,这个好像不大符合要求,

还是写个代码,简单的实现一下转存比较好。就是把原文件留在原地,然后,复制一个出来,在换个名称。这么个解决方法才是比较合理的。

然后下面是代码实现,实现转存一个文件。

/**
* 用缓冲区读写,来提升读写效率。
*/
private static void fileCopyRightWay() {
FileWriter fw = null;
FileReader fr = null;
try {
fr = new FileReader("D:/test/我是.conf");//读
fw = new FileWriter("D:/test/我是.conf.properties");//写
char[] buf = new char[1024];//缓冲区
int len;
while ((len = fr.read(buf)) != -1) {
fw.write(buf, 0, len);//读几个写几个
}
} catch (IOException e) {
System.out.println(e.getMessage());
} finally {
if (fr != null) {
try {
fr.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}

if (fw != null) {
try {
fw.flush();
fw.close();
} catch (IOException e) {
System.out.println(e.getMessage());
}
}
}
}


操作前后的对比图。



看到上面的代码,那么简单

但是,不知道作为观众的你,有没有发现上面代码是有问题的呢?就是转存文件的这个代码,是有问题的。

想知道吗?

看法宝。。。哦不对,是看链接:

java使 FileWriter FileReader 带上编码格式设置



为什么我要重命名文件呢?

因为我使用的是Java的Properties的类读取配置属性。

但是呢,配置文件的名称呢又不是以.properties结尾的。但是文件内容却是properties文件。

具体可以参看上面的执行结果的截图。

所以,我就天真的以为,把原来的文件转存一下,修改了下文件名,刚刚开始使用renameTo()方法。

但是,这个会把原来的文件给修改了。也不合适,然后才出现后面的转存文件的代码。

原来,读取文件的时候,是跟文件的后缀名是没有半毛钱关系的。

所以,根本就不需要把原来要读的文件,修改成以.properties结尾的properties文件,再读。

当然,存的时候,也是,直接调用properties.store();方法,保存就可以了。

保存的文件名以及文件的格式,是txt还是properties还是Excel,还是啥的,都不影响写入的。

使用properties.store();就直接给存成文件了,文件名以及各式无所谓啦。

你要是搜索这篇文章初衷,和我一样呢,那就没必要转存或者重命名了,直接操作文件就OK。

我写完文章,给自己点个赞,不过分吧,

不过分,那我可就点啦啊。

我先点为敬,你们随意。大家随意。不要客气。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐