zoukankan      html  css  js  c++  java
  • 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();
                }
            }
            
        }
    }

    如有错误,望大家纠正一下。

    吾宁做一叶扁舟,始航于湖边,遨游于海上,浪迹于江中。
  • 相关阅读:
    VS2010-MFC(Ribbon界面开发:创建Ribbon样式的应用程序框架)
    VS2010-MFC(图形图像:GDI对象之画刷CBrush)
    VS2010-MFC(图形图像:GDI对象之画笔CPen)
    VS2010-MFC(图形图像:CDC类及其屏幕绘图函数)
    VS2010-MFC(字体和文本输出:文本输出)
    VS2010-MFC(字体和文本输出:CFont字体类)
    VS2010-MFC(MFC常用类:MFC异常处理)
    矩阵快速幂
    Codeforces 510C (拓扑排序)
    UVA10305 Ordering Tasks
  • 原文地址:https://www.cnblogs.com/assassin666/p/4785181.html
Copyright © 2011-2022 走看看