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

分享下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();
}
}
}

 

http://www.blogjava.net/zdz8207/archive/2008/09/20/230155.html

版权所有,作者:老钟,如若转载,请注明出处:https://www.laoz.net/164.html

赞 (0)
老钟
上一篇 2011 年 10 月 30 日 上午 10:32
下一篇 2011 年 11 月 22 日 下午 2:13

相关推荐

  • Eclipse启动失败,JVM terminated.Exit code=1

    Eclipse启动失败,JVM terminated.Exit code=1解决办法:把eclipse文件夹下的eclipse.ini先copy到别的地方(备份一下),然后删除之,启动一下eclipse

    闲话杂谈 2012 年 05 月 09 日
  • 熟读规则:预防维权师敲诈发票 货到付款等手段遵守天猫规则

    案例:朋友的天猫店被投诉师坑钱,因新手客服错发说满500订单才开发票,惨遭被骗子投诉师坑钱, 骗子投诉师先拍下店铺一件廉价商品,然后向店铺人员索要发票,前后不到一分钟,骗子投诉师马上联系第二个不同ID…

    闲话杂谈 2013 年 08 月 02 日
  • 5.1节后杂谈一篇,关于新驾照,扣12分的行为

    劳动节,休息了几天,本来有非常多事情要做的,但是因为有更加重要的事情,所以假期必须回家去办事! 这世道,汽车已经非常普遍了,所以无论如何,都尽量有个驾照吧!之前大学时代一直没有去考,后来工作本想在广州…

    2014 年 05 月 04 日
  • 买家更换地址,骗局?卖家要注意了~

     近期出现了因卖家的粗心,泄露了买家的个人信息导致买家被骗的情况。小淘提醒各位卖家:买家是卖家的上帝,保护买家的信息是卖家的基本职责。不轻易泄露买家的收货地址,如确有需要请再三确认对方身份。PS:…

    闲话杂谈 2013 年 08 月 19 日
  • 想转SAP FICO顾问的必看 (转)

    早就答应给大家写一下我做SAP顾问的一点心得,今日稍稍得闲,想起对诸位的承诺,不如早早动笔,免得日久忘笔食言。 想来做这个行业时间不长,但感触颇深,在此分享,希望对诸位有所裨益! 分以下几个话题: 1. 几…

    闲话杂谈 2012 年 02 月 26 日
  • windows下部署JAVA项目

    写了一个程序,在eclipse下运行速度挺快的,但是内存消耗太多了,就eclipse这个进程就消耗了200M的内存,再加上java程序的内存消耗,感觉2G的内存有点吃不消!所以,要减少eclipse的内存支出,把java项目直接通过命…

    闲话杂谈 2012 年 10 月 21 日
  • 在eclipse中查看android源码

    网上找到一个打包好的源码地址 // 可以直接下载打包好的源码(1.5/16./2.0/2.1/2.2) 地址:http://rgruet.free.fr/public/     例如我在2.2的基础上开发,那么把下载到的2.2源码放到 SDK的这个目录下即…

    闲话杂谈 2012 年 02 月 01 日
  • 匹配邮箱的工具类

    参考做了一个匹配邮箱的工具类,方便以后使用: package com.util; import java.util.List; import java.util.Map; /** * 通过正则匹配全文邮箱 * * @author Stany 2011-08-05 */ public class EmailUtil { /** * …

    闲话杂谈 2011 年 08 月 05 日
  • 老钟非常LOVE的一些电影

    挚爱、视觉和听觉都超级一流的电影: 钢铁侠 Iron Man(2008.04.30) 无敌浩克 The Incredible Hulk(2008.08.20) 钢铁侠2 Iron Man 2(2010.04.25) 雷神托尔 Thor(2011.05.02) 美国队长 Captain America: The …

    2014 年 04 月 22 日
  • HashMap与ConcurrentHashMap性能测试

    http://blog.csdn.net/liuzhengkang/article/details/2916829 http://blog.sina.com.cn/s/blog_605f5b4f0100qsio.html http://hi.baidu.com/fallen9/blog/item/690e963d56471209bba1670a.html http://www.xue5.com/…

    闲话杂谈 2011 年 08 月 30 日