对于文件的操作,我们一定要明确的是该路径是可以指向特定的文件的,否则会报FileNoFoundException
File 的操作实质上是有文件的操作。
/*
* 将D盘com文件夹中后缀为java的文件名后缀改为jad结尾的并复制到E盘中*
* 思路:
*
* A:封装目录和目的地
* B:获取目录下所有的后缀名为java的文件
* C:复制该文件到E盘
* D:修改后缀名
*
*/
import java.io.BufferedReader;
import java.io.BufferedWriter;import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class RenameDemo {
public static void main(String[] args) throws IOException {
//封装目录和目的地
File srcFolder = new File("D:\\com");
File destFolder = new File("E:\\com");
if (!destFolder.exists()) {
destFolder.mkdir();
}
copyFile(srcFolder, destFolder);
rename(destFolder);
}
private static void rename(File destFolder) {
//获取目录下所有的后缀名为java的文件
File[] fileArr = destFolder.listFiles();
for(File file : fileArr){
if(file.isDirectory()){
rename(file);
}else{
String name = file.getAbsolutePath();
int index = name.indexOf('.');
String start = name.substring(0, index);
String newName = start+".jad";
File newFile = new File(newName);
file.renameTo(newFile);
}
}
}
public static void copyFile(File srcFolder,File destFolder) throws IOException{
//获取目录下所有的后缀名为java的文件
File[] fileArr = srcFolder.listFiles();
for(File file:fileArr){
if (file.isDirectory()) {
String name = file.getName();
File newFile = new File(destFolder,name);
newFile.mkdir();
copyFile(file, newFile);
}else{
if(file.getName().endsWith(".java")){
String name = file.getName();
File newFile = new File(destFolder,name);
BufferedReader br = new BufferedReader(new FileReader(file));
BufferedWriter bw = new BufferedWriter(new FileWriter(newFile));
String line;
while((line = br.readLine()) != null){
bw.write(line);
bw.newLine();
bw.flush();
}
bw.close();
br.close();
}
}
}
}
}