java读取文件路径

    技术2022-05-20  43

    http://chengyoyo2006.blog.163.com/blog/static/84517348200893095043496/

    java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里

    JAVA技术 2008-10-30 21:50:43 阅读16 评论0   字号:大中小 订阅

        分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里。由于公司要求读取项目下所有jsp文件,并读取开头的自定义的注释来生成类似javadoc的东西进行页面管理。而读取jsp源代码需要知道文件的绝对路径,所有通过项目文件夹路径先取出所有jsp文件目录再循环解析。最后通过搜索和自己的努力写成一个完整的测试类,供以后查阅,同时分享一下。     ps:通过这个测试类,复习了下数组List Iterator io 泛型和递归函数,虽然很简单但综合起来用还是遇到了些小问题化了一个多小时调试,例如有些异常文件没有后缀名的用.去判断返回的索引就是-1了,如果没有判断后面的操作就出现异常了,因此我在关键地方加了注释,希望对大家有帮助。

    import java.io.*;import java.util.ArrayList;import java.util.Iterator;import java.util.List;

    /*** 读取目录及子目录下指定文件名的路径 并放到一个数组里面返回遍历* @author zdz8207**/public class FileViewer {public static void main(String[] args) {   List arrayList = FileViewer.getListFiles("d:/ajax","html",true);     if(arrayList.isEmpty())   {    System.out.println("没有符号要求的文件");   }   else   {    String message = "";    message += "符号要求的文件数:" + arrayList.size() + "/r/n";    System.out.println(message);       for (Iterator i = arrayList.iterator(); i.hasNext();)    {     String temp = (String) i.next();     System.out.println(temp);     message += temp + "/r/n";    }       appendMethod("d:/ajax/menu.txt",message);   }}public static List<String> fileList = new ArrayList<String>();/*** * @param path 文件路径* @param suffix 后缀名* @param isdepth 是否遍历子目录* @return*/public static List getListFiles(String path, String suffix, boolean isdepth) {   File file = new File(path);   return FileViewer.listFile(file ,suffix, isdepth);}

    public static List listFile(File f, String suffix, boolean isdepth) {   //是目录,同时需要遍历子目录   if (f.isDirectory() && isdepth == true)   {    File[] t = f.listFiles();    for (int i = 0; i < t.length; i++)    {     listFile(t[i], suffix, isdepth);    }   }   else    {    String filePath = f.getAbsolutePath();       if(suffix !=null)    {     int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引     String tempsuffix = "";         if(begIndex != -1)//防止是文件但却没有后缀名结束的文件     {      tempsuffix = filePath.substring(begIndex + 1, filePath.length());     }         if(tempsuffix.equals(suffix))     {      fileList.add(filePath);     }    }    else    {     //后缀名为null则为所有文件     fileList.add(filePath);    }      }     return fileList;}/**    * 方法追加文件:使用FileWriter    * @param fileName    * @param content    */public static void appendMethod(String fileName, String content){    try     {     //打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件     FileWriter writer = new FileWriter(fileName, true);     writer.write(content + "/r/n");     writer.close();    }     catch (IOException e)     {     e.printStackTrace();    }} }

     

     


    最新回复(0)