我现在想实现读取一个文件路径下所有的.jsp文件(包括子文件夹)并且要再读取一个文件的同时把把这个文件所有的中文分别筛选出来。特别是筛选中文的技术该怎么实现~ 具体的代码怎么写?~ 越详细越好~谢谢大家~急~

解决方案 »

  1.   

    遍历所有文件用递归,找中文用正则式
    import java.io.*;
    import java.util.*;
    public class ListFile {
    public static void main(String[]args){
    ArrayList<String> files = new ArrayList<String>();
    list(files,"D:\\");
    System.out.println(files.size());
    Iterator it = files.iterator();
    while(it.hasNext()){
    System.out.println(it.next());
    }
    }

    public static void list(List<String> lst,String path){
    File f = new File(path);
    if(f.isDirectory()){
    lst.add(f.getAbsolutePath()+"\\");
    String dirs[] = f.list();
    for(int i=0; dirs!=null&&i<dirs.length; i++){
    list(lst,f.getAbsolutePath()+"\\"+dirs[i]);
    }
    }
    if(f.isFile()){
    lst.add(f.getAbsolutePath());
    }
    }
    }
    //----------------------------
    //可以逐行读取,放入字符串再进行操作
    String str1 = "abk我们随口dd放进s\nsdk分";
    Pattern pattern = Pattern.compile("[\u4E00-\u9FA0]");
    Matcher mat = pattern.matcher(str1);
    while(mat.find()){
    System.out.println(mat.group());
    }
      

  2.   

    Pattern pattern = Pattern.compile("[\u4E00-\u9FA0]+");//添了个加号
    Matcher mat = pattern.matcher(str1);
    while(mat.find()){
    System.out.println(mat.group());
    }
      

  3.   

    把字符串中的中文替换掉其实很简单,replaceAll("[\u4E00-\u9FA0]+","replacement")
    但要把文件中的中文替换似乎比较麻烦,论坛上也有不少关于类似的帖子,楼主自己可以搜索一下看看