JAVA實現File類中的遍歷操作並輸出內容


package shb.java.testIo;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.Writer;
import java.util.HashMap;

/**
 * File類操作(此代碼效率不是很高———>輸出格式有欠缺。功能還是可以實現的,僅僅是飯后茶涼小憩一下)
 * @Package:shb.java.testIo
 * @Description:遍歷文件夾下所有文件,對於有內容的文件,保存其內容並輸出至指定文本文件,最后輸出的是map集合。
 * @author shaobn
 * @Date 2015-9-6上午11:34:53
 */
public class demo1 {
    public static void main(String[] args) throws Exception {
        File dir = new File("D:\\testRemove");
        File target = new File("D:\\target.txt");
        BufferedWriter bw = new BufferedWriter(new FileWriter(target));
        HashMap<String, String> map = new HashMap<String,String>();
        method1(dir,bw,map);
        method3(map.toString(), bw);
    }
    // 遍歷文件夾下所有文件,對於有內容的文件全部寫到一個文本文件中。
    public static void method1(File dir,Writer writer,HashMap<String,String> map){
        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 static String method2(File file){
        BufferedReader br = null;
        StringBuffer sb = new StringBuffer();
        try {
            br = new BufferedReader(new FileReader(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();
            }
        }
        return sb.toString();
        
    }
    //將讀取的路徑以及相應的內容寫入指定的文件
    public static void method3(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();
            }
        }
        
    }
}

如有錯誤,望大家糾正一下。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM