package com.heima.io;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Test5 {
/**
* 编写一个程序,把一个目录里面所有后缀名是.java的文件改为.txt文件,然后拷贝到另一个目录去
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File src = new File("E:\\a");
File desc = new File("E:\\b");
copyTo(src,desc);
}
/*
* 先改名再拷贝的方法
* 1,返回值类型 void
* 2,参数列表 File src, File desc
*/
public static void copyTo(File src, File desc) throws IOException {
File[] files = src.listFiles(); //将文件存储到File数组中
for(File subFile : files) { //遍历数组
if(subFile.isDirectory()) { //如果是文件夹
copyTo(subFile, desc); //递归调用
} else if(subFile.isFile() && subFile.getName().endsWith(".java")) { //如果是文件并且后缀名是.java
//subFile.getName().replace(".java", ".txt"); //后缀名改为.txt
File newFile = new File(desc, subFile.getName().replace(".java", ".txt")); //在目的路径创建一个新文件,名字与当前文件名相同
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile)); //创建高效输入输出流
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(newFile));
/*byte[] arr = new byte[1024 * 8];
int len;
while((len = bis.read(arr)) != -1) {
bos.write(arr);
bos.flush();
}*/
int b = -1;
while(-1!=(b=bis.read())) {
bos.write(b);
}
bis.close();
bos.close();
}
}
}
}
|
|