`
lh870003574
  • 浏览: 23449 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

文件读写实用类

 
阅读更多

package com.scnulh.util;

 

import java.util.List;

import java.io.File;

import java.io.FilenameFilter;

import java.util.ArrayList;

import java.util.Iterator;

import java.util.regex.Pattern;

 

public class Directory {

   

    public static class TreeInfo implements Iterable<File>{

       public List<File> files=new ArrayList<File>();

       public List<File> dirs=new ArrayList<File>();

      

       @Override

       public Iterator<File> iterator() {       

           return files.iterator();

       }

      

       void addAll(TreeInfo other)

       {

           files.addAll(other.files);

           dirs.addAll(other.dirs);       

       }

      

       public String toString()

       {

           return "dirs:"+PPrint.pformat(dirs)+

                  "\nfiles:"+PPrint.pformat(files);

       }  

    }

   

    /**

     * 递归生成目录及文件树

     * @param startDir

     * @param regex

     * @return

     */

    static TreeInfo recurseDirs(File startDir,String regex)

    {

       TreeInfo result=new TreeInfo();

       for(File item:startDir.listFiles())

       {

           if(item.isDirectory())

           {

              result.dirs.add(item);

              result.addAll(recurseDirs(item, regex));

           }

           else if(item.getName().matches(regex))

              result.files.add(item);

       }

       return result;

    }

   

    public static TreeInfo walk(String start,String regex)

    {

       return recurseDirs(new File(start), regex);

    }

    public static TreeInfo walk(File start,String regex)

    {

       return recurseDirs(start, regex);

    }

   

    public static TreeInfo walk(File start)

    {

       return recurseDirs(start, ".*");

    }

    public static TreeInfo walk (String start)

    {

       return recurseDirs(new File(start), ".*");

    }

   

    public static File[] local(File dir,final String regex)

    {

       return dir.listFiles(new FilenameFilter() {

           private Pattern pattern=Pattern.compile(regex);

           @Override

           public boolean accept(File dir, String name) {

              // TODO Auto-generated method stub

              return pattern.matcher(new File(name).getName()).matches();

           }

       });

    }

   

    public static File[] local(String path,final String regex)

    {

       return local(new File(path),regex);

    }

   

    public static void main(String[] args)

    {

       PPrint.pprint(Directory.walk(".").files);

      

       for(File file:Directory.walk(".", ".*.*\\.class$"))

       {

           System.out.println(file);

       }

      

    }

   

}

 

分享到:
评论

相关推荐

    Properties文件读写;Property文件读写;Property

    读/写属性文件的工具类. PropertyUtil.java对Property文件读写进行了封装, 使开发人员对Property文件的读写更加容易。 在性能、实用性 方面还是可以的。

    PropertyUtil配置文件读写工具类,超级简便的代码

    PropertyUtil配置文件读写工具类,超级简便的代码,超级实用

    ini.cs 实用的INI读写类

    实用的INI读写类 ini 配置文件 读写 C# 实用的INI读写类 ini 配置文件 读写 C# 实用的INI读写类 ini 配置文件 读写 C#

    C#实用类集-DotNet.Utilities

    文件读写 文件夹读写 各种加密解密 XML操作 NET实用类集-DotNet.Utilities.7z\C#实用类集-DotNet.Utilities

    简单读写INI文件类

    简单读写INI文件类,每次开发项目都需要读写INI,这个类简单实用,INI文件不存在可以自动创建,可以写初始值。

    Vc++读写csv文件的类

    Vc++读写csv文件的类,这个资源是读写CSV文件的非常实用的类。方法写得非常好,代码也写得非常简洁,很合适在实际项目中使用

    File_ini_RW.rar_ini rw_ini 文件读写_ini 读写

    INI文件读写类,可以直接引用,相当有实用价值。

    vc-csv.rar_CSV 读写_VC读写CSV_config.cpp_vc 读写csv_vc 读取csv文件

    Vc++读写csv文件的类,这个资源是读写CSV文件的非常实用的类。方法写得非常好,代码也写得非常简洁,很合适在实际项目中使用。经本人测试,只要把上面的代码CSVOperator.h、CSVOperator.cpp和StringParser.h拷贝到...

    C++XML文件读写

    一个简单的C++读取XML文件的类,不同于网上其他类 特点:简介/实用

    C++读写文本文件和二进制文件(源代码)

    本段代码描述了如何使用C++的fstream库来读写文本文件和二进制文件。对于文本文件,我们使用std::ofstream和std::ifstream类,并通过流操作符和&gt;&gt;或std::istreambuf_iterator来写入和读取文本数据。对于二进制文件,...

    C#读写ini文件测试实例

    C#读写ini文件测试实例,自己写的一个小程序,可以运行操作,代码简单实用,已经把读写.ini文件提取以一个类里,界面直接调用这个类的方法就行了.

    VC 读写INI文件类以及示例程序.rar

    VC 读写INI文件类以及示例程序,功能主要是将左边列表框的学生姓名写入ini文件,然后从该ini文件读出放到右边的列表框中。属于比较典型且基础的VC 读写INI文件的例子,INI文件一般是作为配置文件,在程序运行的过程...

    ini文件读写解决方案

    该接口主要使用面向对象的思想,将配置信息的保存和读取封装到对象中。这样做有以下三方面好处:一、配置信息读取方便,只需调用...很容易制作分析工具,自动根据配置信息类代码文件生成使用帮助文档。

    ini文件读写

    INI配置文件读取,写入,生成LOG文件的一个DLL类,很实用

    Excel读写类(无需office环境)

    Excel读写类库,封装其他几个有POI类库实现对Excel文件的读取和保存数据到Excel,比较实用强大! 此Excel读写类库,比调用DotNet自带office库,强大。自己已经比较,稳定性、效率都大大提高。 DotNet自带Excel类库...

    1K空间快速读写文件工具类

    非常实用,10多M的文件复制只需0点几秒.

    C#实用类集DdotNet

    文件读写 文件夹读写 各种加密解密 XML操作 #region 获得用户IP /// /// 获得用户IP /// public static string GetUserIp() { string ip; string[] temp; bool isErr = false; if (System.Web....

    Java心得文件

    适合java新手去看看 各种实用的方法

    Json字符串格式化java工具和IO流读写管理文件工具

    1.非常简练易懂的JSON格式化小程序 2.实用的IO流管理,读写文件小程序,可改造 3.实际开发中临时写的自己用的,够用,不够完美

Global site tag (gtag.js) - Google Analytics