/*
9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
*/
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 9、 编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
* @author liuxuanchao
*
*/
public class Test9 {
public static void main(String[] args) throws IOException{
getCopy("F:\\JAVAheima", "F:\\heima");
}
public static void getCopy(String yuan,String md) throws IOException{
//指定一个源的目录
File file1 = new File(yuan);
//指定目的的目录
File file2 = new File(md);
//创建目录
file2.mkdir();
//获得源目录下的所有java文件路径。
OutputStream ops = null;
InputStream ips = null ;
//建立输出流
File[] JAVA = file1.listFiles(new FileFilter() {
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
return pathname.getName().endsWith(".java");
}
});
//遍历所有的java文件路径
for(File Pathname : JAVA){
int index1 = Pathname.getName().lastIndexOf('\\');
int index2 = Pathname.getName().lastIndexOf('.');
String name = Pathname.getName().substring(index1+1, index2)+".txt";
//获取的路径下的文件名字,把java改成txt。
try {//每遍历到一个就读取一个
ips = new FileInputStream(Pathname);
//建立一个缓冲区
byte[] buf = new byte[1024];
int len = 0;
while((len = ips.read(buf))!=-1){
//把读到的java文件全部输出到了指定的目录下+该该修改过的名字。
ops = new FileOutputStream(file2+"\\"+name);
ops.write(buf);
ops.flush();
//将读取到的数据打印到控制台,调试用的
//System.out.println(new String(buf,0,len));
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//把文件转过去了,下面我们去修改目的下的文件名,将.java修改成.txt。
File[] TXT = file2.listFiles(new FileFilter() {
//先读取到了目的目录下所有文件的路径返回一个File数组
@Override
public boolean accept(File pathname) {
// TODO Auto-generated method stub
return pathname.getName().endsWith(".java");
}
});
//遍历路径
for(File Pathname : TXT){
//把每个文件的名字都重命名一下将.java改成.txt
Pathname.renameTo(new File(file2.toString()+
Pathname.getName().replace(".java", ".txt")));
}
//关闭资源。
ips.close();
ops.close();
}
}
|