您的位置:首页 > 编程语言 > Java开发

编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。

2016-04-12 23:04 701 查看
package com.heima.test;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

import javax.imageio.stream.FileImageInputStream;

public class Test02 {

/**编写程序,将指定目录下所有.java 文件拷贝到另一个目的中,并将扩展名改为.txt。
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
File src = getDir();
File dest = getDir();
copy(src,dest);
reName(dest);
}

public static void reName(File dest) {
File [] subFiles = dest.listFiles();
for (File subFile : subFiles) {
if(subFile.isFile()){
if(subFile.getName().endsWith(".java")){
System.out.println(subFile.getPath().replaceAll("\\.java", ".txt"));
File newName = new File(subFile.getPath().replaceAll("\\.java", ".txt"));
subFile.renameTo(newName);
}
}else{
reName(subFile);
}
}
}

public static void copy(File src, File dest) throws IOException {
File newDir = new File(dest,src.getName());
newDir.mkdir();
File []subFiles = src.listFiles();
for (File subFile : subFiles) {
if(subFile.isFile()){
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(subFile));
BufferedOutputStream bos =
new BufferedOutputStream(new FileOutputStream(new File(newDir,subFile.getName())));
int len;
while((len = bis.read()) != -1){
bos.write(len);
}
bis.close();
bos.close();
}else{
copy(subFile, newDir);
}

}
}

public static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("输入文件夹路径:");
while(true){
String line = sc.nextLine();
File dir = new File(line);
if(!dir.exists()){
System.out.println("文件夹路径不存在!重输:");
}else if(dir.isFile()){
System.out.println("不是文件夹,是文件!重输:");
}else{
return dir;
}
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: