/*
需求:将"C:\kaifa\Javacode\day18\aaa"目录下的所有.java文件
全都复制到"d:\\bbb"目录下,并且将后缀名改名为.txt
*/
/*
思路:1、封装目录对象,然后通过递归的方法获得所有的.java文件
2、将获得的.java文件,获得他的文件的绝对路径,然后转为字符串,再替换掉原来的字符串
以这个字符串做为当前路径的名称,然后
3、复制到指定的文件夹之中(BufferReader,BufferWriter)
//String replace(char oldChar, char newChar)
// 返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
//Stringfi.toString().replace()
//File getAbsoluteFile() .replace(".java",".txt");getAbsolutePath()
//String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
//System.out.println();
*/
import java.io.File;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class CopyRenameDemo
{
public static void main(String[] args) throws IOException
{
//BufferedReader br = new BufferedReader(new FileReader(""))
File file = new File("C:\\kaifa\\Javacode\\day18\\aaa");
getRename(file);
}
public static void getRename(File file)throws IOException{
//File file2 = new File("D:\\ddd\\ddd.txt");
// file2.mkdirs();
//String getAbsolutePath() 返回此抽象路径名的绝对路径名字符串。
File[] fil = file.listFiles();
for(File fi : fil){
//boolean isDirectory()
if(fi.isDirectory()){
getRename(fi);
}else if(fi.getAbsolutePath().endsWith(".java")){
//String getName()
String s = fi.getName();
String s2 = s.replace(".java",".txt");
File file2 = new File("d:\\ddd",s2);
if(!(file2.exists())){
file2.createNewFile();
}
BufferedReader br = new BufferedReader(new FileReader(fi.getAbsolutePath()));
//因为你每一次都是创建了一个新的txt文件,所以到最后保存的就只有一个而已
//因此,需要改进
BufferedWriter bw = new BufferedWriter(new FileWriter(file2));
char[] ch =new char[1024];
int len =0;
while((len=br.read(ch))!=-1){
bw.write(ch,0,len);
}
br.close();
bw.close();
}//else结束的位置
}//for循环结束的位置
}
}
|
|