黑马程序员技术交流社区
标题:
renameTo
[打印本页]
作者:
李前进
时间:
2014-5-8 20:36
标题:
renameTo
如何用renameTo拷贝文件并且重命名?例如:怎么把"G:\\java test\\day01"文件夹中所有的java文件复制到"C:\\day01",并且把后缀名改成.txt?
作者:
多一点
时间:
2014-5-8 22:55
renameTo 重命名操作无法将一个文件从一个文件系统移动到另一个文件系统。
好像不能拷贝文件吧。按你说的需求:直接把目标文件的后缀定义为.txt就行啦
作者:
奇迹
时间:
2014-5-9 02:50
得到该文件夹下的所有文件,在依次拷贝
最后依次改名
作者:
官珺伟
时间:
2014-5-9 04:59
本帖最后由 官珺伟 于 2014-5-9 05:01 编辑
renameTo是重命名的意思。格式:f1.renameTo(f2); 意思是f1改名为f2。
用这个功能能实现传说中的剪切功能,重命名功能。
作者:
skill20
时间:
2014-5-9 10:04
/*
需求:把指定文件夹下的所有.java文件复制到另一个目录下,
并把文件改为.txt。
分析:因为文件夹下可能还有文件夹,要先对指定文件夹进行递归,
在递归的过程中加上判断文件后缀名为.java,存入集合中。
建立流从集合读写。
*/
import java.io.*;
import java.util.*;
class CopyFiles
{
public static void main(String[] args)
{
copyTo();
}
public static void copyTo()
{
File dir1 = new File("G:\\java test\\day01");
File dir2 = new File("C:\\day01");
if(!dir2.exists())
dir2.mkdir();
List<File> list = new ArrayList<File>();
getFiles(dir1,list);
BufferedReader bfr = null;
BufferedWriter bfw = null;
try
{
for(File files : list)
{
//建立流对象疯狂的读写。
bfr = new BufferedReader(new FileReader(files));
bfw = new BufferedWriter(new FileWriter(dir2+File.separator+ files.getName()));
String str = null;
while ((str = bfr.readLine())!= null)
{
bfw.write(str);
bfw.newLine();
bfw.flush();
}
}
}
catch (IOException e)
{
throw new RuntimeException("复制失败");
}
finally
{
try
{
if( bfr != null)
bfr.close();
}
catch (IOException e)
{
throw new RuntimeException("关流失败");
}
try
{
if( bfw != null)
bfw.close();
}
catch (IOException e)
{
throw new RuntimeException("关流失败");
}
}
}
//把指定的文件存集合。
public static void getFiles(File dir, List<File> list)
{
File[] files = dir.listFiles();
for (int x = 0; x < files.length ; x++ )
{
if(files[x].isDirectory())
getFiles(files[x],list);
else
{
//判断是不是.java文件。
if(files[x].getName().endsWith(".java"))
{
//把.java文件改.txt。
files[x].getName().replace(".java",".txt");
list.add(files[x]);
}
}
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2