简单利用IO流技术实现指定文件夹下,指定文件类型的文件进行重命名,以及定义一个复制文件的方法
如果要实现:
- 多级文件夹下的文件修改或者复制,加上递归方法即可
- 文件名的修改,还可以利用字符串的拼接,subString,split,indexOf
public class FileNameChangeDemo1 {
public static void main(String[] args) {
File file1=new File("E:\\Java\\00_source\\demo1");
//获取当前路径下的指定后缀名的 文件 ;返回数组
File[] f=file1.listFiles(new FilenameFilter() {
public boolean accept(File dir, String name) {
return new File(dir,name).isFile() && name.endsWith(".java");
}
});
//遍历:foreach或fori
for (int i = 0; i < f.length; i++) {
String name = f[i].getName();
String newName = "0"+(i + 1) + ".jpg";
System.out.println(newName);
//保证路径相同,重新命名,路径不同是剪切并命名
File file = new File("E:\\Java\\00_source\\demo2", newName);
//修改后后缀名
//name.replace(".jpg",".png");
f[i].renameTo(file);
//拓展需求:复制文件
//定义一个方法实现字节流的输入与输出:copy
}
}
//复制文件
private static void copyFile(File file,File newFile)throws IOException{
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
byte[] buffer = new byte[1024];
int len ;
while ((len = bis.read(buffer)) != -1){
bos.write(buffer,0,len);
}
bos.close();
bis.close();
}
}