4、编写一个程序,把指定目录下的所有的带.java文件都拷贝到另一个目录中,拷贝成功后,把后缀名是.java的改成.txt。
我有三个java文件,为什么只有一个修改成功,其他都失败
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
public class Number4 {
public static void main(String[] args) {
//要被拷贝的文件夹
File startFile = new File("f:\\haha");
File[] f = startFile.listFiles(new FilenameFilter(){
//重写
public boolean accept(File dir, String name){
return new File(dir,name).isFile() && name.endsWith(".java");
}
});
//判断目的地是否存在
File endFile = new File("f:\\hehe");
if(!endFile.exists()){
endFile.mkdir();
}
//创建文件输入输出对象
BufferedReader br = null;
BufferedWriter bw = null;
try {
//遍历文件
for(File file : f){
//得到文件名
String name = file.getName();
//将文件名和路径拼接
File newFile = new File(endFile, name);
br = new BufferedReader(new FileReader(file));
bw = new BufferedWriter(new FileWriter(newFile));
//接收字符串
String s = null;
//赋值文件内容
while((s=br.readLine()) != null){
bw.write(s);
}
}
} catch (IOException e) {
e.printStackTrace();
} finally{
try{
br.close();
bw.close();
}catch(IOException e){
e.printStackTrace();
}
}
//改名
File[] ff = endFile.listFiles();
for(File fl : ff){
String name = fl.getName();
String newName = name.replace(".java", ".txt");
File newFile = new File(endFile, newName);
if(fl.renameTo(newFile)) {
System.out.println("修改成功");
} else {
System.out.println("修改失败");
}
}
}
}
|