本帖最后由 叶征东 于 2012-9-30 01:40 编辑
import java.util.*;
import java.io.*;
public class JavaMuLu{
public static void main(String[] args)
{
//--------------指定目录
File dir=new File("e:\\javacx");
//-------------目的地
File toDir=new File("d:\\test");
List<File> listFile=new ArrayList<File>();
List<String> fileName=new ArrayList<String>();
fileToList(dir,listFile,fileName);
writeToFile(listFile,toDir);
}
//-------------对指定的目录进行递归,获取递归过程中所有的不同名JAVA文件. 其实List<String> fileName可以方法的内部定义
public static void fileToList(File file,List<File> listFile,List<String> fileName)
{
File[] arr=file.listFiles();
for(File f:arr)
{
if(f.isDirectory())
//-----------递归调用
fileToList(f,listFile,fileName);
else
{ //----判定是Java文件,且是不同名的Java文件
if(f.getName().endsWith(".java")&&(!(fileName.contains(f.getName()))))
{ //-------------将这些文件都存储到集合中
listFile.add(f);
fileName.add(f.getName());
}
}
}
}
//-------------将集合中的文件写入到指定目录中
public static void writeToFile(List<File> listFile,File dir)
{
BufferedWriter bw=null;
BufferedReader br=null;
try
{
for(File f:listFile)
{
File file = new File(dir,f.getName());
br = new BufferedReader(new FileReader(f));
bw=new BufferedWriter(new FileWriter(file));
String line = null;
while((line = br.readLine())!=null)
{
bw.write(line);
bw.newLine();
bw.flush();
}
}
}
catch(IOException e)
{
throw new RuntimeException("文件读写异常");
}
finally
{
try
{
if(br!=null)
br.close();
}
catch(IOException e)
{
throw new RuntimeException("文件读取关闭异常");
}
try
{
if(bw!=null)
bw.close();
}
catch(IOException e)
{
throw new RuntimeException("文件写入关闭异常");
}
}
}
}
|