1 public class FileWrite { 2 3 4 public static void main(String[] args) throws Exception { 5 //封装数据源目录 6 File srcFolder = new File("E:KeyWord//"); 7 //递归实现 8 read(srcFolder); 9 10 11 } 12 13 private static void read(File srcFolder) throws IOException { 14 Map<String, String> map = new HashMap<String, String>(); 15 // FileOutputStream FileOutputStream = new FileOutputStream(new File("E:\\KeyWord\\test.txt")); 16 17 //获取该目录下的所有文件或文件夹的File数组 18 File[] fileArray = srcFolder.listFiles(); 19 //遍历该File数组得到每一个File对象 20 for(File file : fileArray){ 21 //判断该File对象是否是文件夹 22 if(file.isDirectory()){ 23 24 read(srcFolder); 25 }else{ 26 27 BufferedReader br = new BufferedReader(new FileReader(file)); 28 String str; 29 while((str = br.readLine()) != null){ 30 map.put(str, file.getName().replace(".txt", "")); 31 } 32 } 33 } 34 35 //将map集合写入txt文件 36 // ObjectOutputStream ObjectOutputStream = new ObjectOutputStream(FileOutputStream); 37 // ObjectOutputStream.writeObject(map); 38 // ObjectOutputStream.flush(); 39 // ObjectOutputStream.close(); 40 41 //获取value值 42 for(Object obj : map.keySet()){ 43 Object value = map.get(obj); 44 System.out.println(obj + "=" + value); 45 } 46 // System.out.print(map); 47 } 48 49 }
这里主要实现将指定文件夹下含有的一些文件的内容读取并写入map集合,集合中的key是文件里面的每一行内容,value是对应的文件名。