packageshb.java.testIo;importjava.io.BufferedReader;importjava.io.BufferedWriter;importjava.io.File;importjava.io.FileReader;importjava.io.FileWriter;importjava.io.Writer;importjava.util.HashMap;/*** File类操作(此代码效率不是很高———>输出格式有欠缺。功能还是可以实现的,仅仅是饭后茶凉小憩一下)
* @Package:shb.java.testIo
* @Description:遍历文件夹下所有文件,对于有内容的文件,保存其内容并输出至指定文本文件,最后输出的是map集合。
*@authorshaobn
* @Date 2015-9-6上午11:34:53*/
public classdemo1 {public static void main(String[] args) throwsException {
File dir= new File("D:\\testRemove");
File target= new File("D:\\target.txt");
BufferedWriter bw= new BufferedWriter(newFileWriter(target));
HashMap map = new HashMap();
method1(dir,bw,map);
method3(map.toString(), bw);
}//遍历文件夹下所有文件,对于有内容的文件全部写到一个文本文件中。
public static void method1(File dir,Writer writer,HashMapmap){
File[] files=dir.listFiles();for(File file:files){if(file.isDirectory()){
method1(file, writer,map);
}else{if(file.length()!=0){
map.put(file.getName(), method2(file));
}
}
}
}//读取文件里面的内容
public staticString method2(File file){
BufferedReader br= null;
StringBuffer sb= newStringBuffer();try{
br= new BufferedReader(newFileReader(file));
String line= null;while((line = br.readLine())!=null){
sb.append(line);
}
}catch(Exception e) {//TODO: handle exception
e.printStackTrace();
}finally{try{if(br!=null){
br.close();
}
}catch(Exception e2) {//TODO: handle exception
e2.printStackTrace();
}
}returnsb.toString();
}//将读取的路径以及相应的内容写入指定的文件
public static voidmethod3(String str,Writer writer){try{
writer.write(str);
}catch(Exception e) {//TODO: handle exception
}finally{try{if(writer!=null)
writer.close();
}catch(Exception e2) {//TODO: handle exception
e2.printStackTrace();
}
}
}
}