先看Java编程实战经典中的一道习题:

编写程序,程序运行时输入目录名称,并把该目录下的所有文件名后缀修改成.txt。

按照题意,我在d盘新建了文件夹test,并在该文件夹下新建了一个文件file.d。接着我写了如下程序

import java.io.File;
import java.util.Scanner; public class Ex09 { public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner scan = new Scanner(System.in);
// String dirname = scan.nextLine();
// scan.close();
String dirname = null;
dirname = "d:"+File.separator+"test";
File f = new File(dirname);
if (f.isDirectory()) {
File[] fileList = f.listFiles();
for (File file : fileList) {
if (file.isFile()) {
String suffix =
file.getName().substring(
file.getName().lastIndexOf('.')+1);
if (false == "txt".equals(suffix)) {
String destName = file.getName().substring(
0,file.getName().lastIndexOf('.'));
File dest = new File(destName+".txt");
file.renameTo(dest);
}
}
}
}
} }

经检查,程序没有什么问题,但是文件后缀并没有被修改。

后来检查才发现

File dest = new File(destName+".txt");  这样写虽然不会报错,但是不能表示文件的具体存储位置,需要指明文件的绝对地址才行,

改成如下代码后问题解决。

import java.io.File;
import java.util.Scanner; public class Ex09 { public static void main(String[] args) {
// TODO Auto-generated method stub
// Scanner scan = new Scanner(System.in);
// String dirname = scan.nextLine();
// scan.close();
String dirname = null;
dirname = "d:"+File.separator+"test";
File f = new File(dirname);
if (f.isDirectory()) {
File[] fileList = f.listFiles();
for (File file : fileList) {
if (file.isFile()) {
String suffix = file.getName().substring(
file.getName().lastIndexOf('.')+1);
if (false == "txt".equals(suffix)) {
String s = file.getParent();
String destName = file.getName().substring(
0,file.getName().lastIndexOf('.'));
File dest = new File(s+file.separator+destName+".txt"); file.renameTo(dest);
}
}
}
}
} }

可以看出, renameTo这个函数是可以实现将文件重命名和文件移动的功能的。

关于Java中File的renameTo函数的更多相关文章

  1. java中File类的常用方法总结

    java中File类的常用方法 创建: createNewFile()在指定的路径创建一个空文件,成功返回true,如果已经存在就不创建,然后返回false. mkdir() 在指定的位置创建一个此抽 ...

  2. python 中的sort 和java中的Collections.sort()函数的使用

    x=[1,2,3] x.sort()对的,x这个都变了 y=x.sort()错误 y=sorted(x)对的,x拍好序的一个副本 python中用匿名函数和自定义函数排序:(很奇怪的是比较函数返回的是 ...

  3. Java 中File类的createNewFile()与createTempFile(), delete和deleteOnExit区别

    1. Java 中File类的createNewFile()与createTempFile()的区别 最近,在看代码时看到了一个方法, File.createTempFile() ,由此联想到File ...

  4. JAVA中的内联函数

    在说内联函数之前,先说说函数的调用过程. 调用某个函数实际上将程序执行顺序转移到该函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到 转去执行该函数前的地方.这种转移操作要求在转去前要保护 ...

  5. java中File的delete()方法删除文件失败的原因

    java中File的delete()方法删除文件失败的原因 学习了:http://hujinfan.iteye.com/blog/1266387 的确是忘记关闭了: 引用原文膜拜一下: 一般来说 ja ...

  6. Java中的lambda匿名函数使用

    Java中的lambda匿名函数使用 lambda匿名函数的使用是为了满足某些情况下需要临时定义函数,或者事先定义,需要时才使用.在python里面,lambda表达式的表达方式为:lambda 参数 ...

  7. java中File类的常用所有方法及其应用

    创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false.mkdir()  在指定位置创建一个单级文件夹.mkdirs()  在指定位置 ...

  8. Java中File常用的方法汇总

    创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false.mkdir() 在指定位置创建一个单级文件夹.mkdirs() 在指定位置创建 ...

  9. 【转】Java中File常用的方法汇总

    创建:createNewFile()在指定位置创建一个空文件,成功就返回true,如果已存在就不创建,然后返回false.mkdir() 在指定位置创建一个单级文件夹.mkdirs() 在指定位置创建 ...

随机推荐

  1. 滚屏加载--jQuery+PHP实现浏览更多内容

    滚屏加载技术,就是使用Javascript监视滚动条的位置,每次当滚动条到达浏览器窗口底部时,触发一个Ajax请求后台PHP程序,返回相应的数据,并将返回的数据追加到页面底部,从而实现了动态加载,其实 ...

  2. phpcms V9 改造:输出sql语句

    .修改数据库驱动 phpcms/libs/classes/mysql..修改模型 phpcms/libs/classes/model..调用 使用自定义模型类查询完成之后,调用模型类的lastsql( ...

  3. 网页制作技巧:iframe自适应高度

    转自:http://www.enet.com.cn/article/2012/0620/A20120620126237.shtml 通过Google搜索iframe 自适应高度,结果5W多条,搜索if ...

  4. 深入理解 KVC\KVO 实现机制 — KVO

    KVC和KVO都属于键值编程而且底层实现机制都是isa-swizzing,所以本来想放在一起讲的.但是篇幅有限所以就分成了两篇博文. KVC实现机制传送门 KVO概述 键值观察Key-Value-Ob ...

  5. html简单框架网页制作

    先把框架分结构 top顶端 <img src="title.jpg"/> left左侧 <body bgcolor="pink"> &l ...

  6. bzoj1011 [HNOI2008]遥远的行星

    1011: [HNOI2008]遥远的行星 Time Limit: 10 Sec  Memory Limit: 162 MBSec  Special JudgeSubmit: 2480  Solved ...

  7. ZOJ 3913 Bob wants to pour water ZOJ Monthly, October 2015 - H

    Bob wants to pour water Time Limit: 2 Seconds      Memory Limit: 65536 KB      Special Judge There i ...

  8. hbase0.95.2部署

    hbase0.95.2部署 下载安装包 hbase-0.95.2-cdh5.0.0-beta-1.tar.gz hbase需对应hadoop版本 解压 tar zxvf hbase-0.95.2-cd ...

  9. 【wikioi】1904 最小路径覆盖问题(最大流+坑人的题+最小路径覆盖)

    http://wikioi.com/problem/1904/ 这题没看数据的话是一个大坑(我已报告官方修复了),答案只要求数量,不用打印路径...orz 最小路径覆盖=n-最大匹配,这个我在说二分图 ...

  10. Java_获取当前月最后一天

    List<String> ms = DateUtils.getMonths(7,"yyyyMM"); SimpleDateFormat sdf = new Simple ...