java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
2017-03-24 11:22
1226 查看
原文地址: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;
public class FileViewer {
public static void main(String[] args) {
List arrayList =FileViewer.getListFiles("d:/ajax","html",true);
if(arrayList.isEmpty())
{
System.out.println("没有符号要求的文件");
}
else
{
Stringmessage = "";
message +="符号要求的文件数:" + arrayList.size() + "rn";
System.out.println(message);
for(Iterator i = arrayList.iterator(); i.hasNext();)
{
String temp = (String) i.next();
System.out.println(temp);
message += temp + "rn";
}
appendMethod("d:/ajax/menu.txt",message);
}
}
public static List fileList = new ArrayList();
public static List getListFiles(String path, String suffix, booleanisdepth)
{
File file = newFile(path);
returnFileViewer.listFile(file ,suffix, isdepth);
}
public static List listFile(File f, String suffix, booleanisdepth)
{
//是目录,同时需要遍历子目录
if (f.isDirectory() &&isdepth == true)
{
File[] t =f.listFiles();
for (int i =0; i < t.length; i++)
{
listFile(t[i], suffix, isdepth);
}
}
else
{
StringfilePath = 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;
}
public static void appendMethod(String fileName, Stringcontent)
{
try
{
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "rn");
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
posted on 2008-09-20 16:59
流风 阅读(10049)
评论(6) 编辑 收藏
# re:分享下java
还好 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
写下来主要是复习下知识,和整理下思路,同时也方便以后的重用。
当然如果要细化还是有很多工作可以作的,例如用重载写三个同名函数分别只传入一个,两个,三个参数的,这样使用起来就更加方便了,另外按照惯例优先配置的方法可以采用如果传入某个参数是默认生成什么格式的文件,返回什么格式的值关之类的。 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里[未登录]
以上的 code 有引起 forever recursion 和占用大量多的记忆体的危险
这是一般的 bug pattern
也是 Java 档案操作不好用的原因
Java 没有能力处理进阶 file system 的 symbolic link / hard link / junctionpoint
Java 也不善长作一般的档案操作
要用上 Java7 才引入的 JSR203 NIO2才会得到改善 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class FileViewer {
public static void main(String[] args) {
//List arrayList =FileViewer.getListFiles("d:/com","html",true);
//读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)
//List arrayList =FileViewer.getListFiles("d:/com","java",true);
//经试验,后缀不能不填写,否则编译不通过,提示“FileViewer.java:17: 非法的表达式开始”。
//另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件
List arrayList = FileViewer.getListFiles("d:/com","",true);
if(arrayList.isEmpty())
{
System.out.println("没有符号要求的文件");
}
else
{
String message = "";
message += "符号要求的文件数:" + arrayList.size() + "rn";
System.out.println(message);
for (Iterator i = arrayList.iterator(); i.hasNext();)
{
String temp = (String) i.next();
System.out.println(temp);
message += temp + "rn";
}
//将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常
//java.io.FileNotFoundException: d:ajaxmenu.txt(系统找不到指定的路径。)
//如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。
appendMethod("d:/menu.txt",message);
}
}
public static List fileList = new ArrayList();
public static List getListFiles(String path, String suffix, booleanisdepth)
{
File file = new File(path);
return FileViewer.listFile(file ,suffix, isdepth);
}
public static List listFile(File f, String suffix, booleanisdepth)
{
//是目录,同时需要遍历子目录
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();
System.out.println("suffix = "+suffix);
if(suffix =="" || suffix == null)
{
//后缀名为null则为所有文件
System.out.println("----------------");
fileList.add(filePath);
}
else
{
int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
String tempsuffix = "";
if(begIndex != -1)//防止是文件但却没有后缀名结束的文件
{
tempsuffix = filePath.substring(begIndex + 1,filePath.length());
}
if(tempsuffix.equals(suffix))
{
fileList.add(filePath);
}
System.out.println("|||||||||||||||||||");
}
}
return fileList;
}
public static void appendMethod(String fileName, Stringcontent)
{
try
{
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "rn");
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
另外在同一个目录新建个BAT文件run.bat,内容为:
@ echo off
java FileViewer
则双击就可,在d:menu.txt中看到结果了。
http://tieba.baidu.com/f?kw=������ 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里[未登录]
获取到所有的Jsp文件之后,怎么解析Jsp文件里面的内容,并提取所有的链接资源,最后判断这些资源是否存在?
分享下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;
public class FileViewer {
public static void main(String[] args) {
List arrayList =FileViewer.getListFiles("d:/ajax","html",true);
if(arrayList.isEmpty())
{
System.out.println("没有符号要求的文件");
}
else
{
Stringmessage = "";
message +="符号要求的文件数:" + arrayList.size() + "rn";
System.out.println(message);
for(Iterator i = arrayList.iterator(); i.hasNext();)
{
String temp = (String) i.next();
System.out.println(temp);
message += temp + "rn";
}
appendMethod("d:/ajax/menu.txt",message);
}
}
public static List fileList = new ArrayList();
public static List getListFiles(String path, String suffix, booleanisdepth)
{
File file = newFile(path);
returnFileViewer.listFile(file ,suffix, isdepth);
}
public static List listFile(File f, String suffix, booleanisdepth)
{
//是目录,同时需要遍历子目录
if (f.isDirectory() &&isdepth == true)
{
File[] t =f.listFiles();
for (int i =0; i < t.length; i++)
{
listFile(t[i], suffix, isdepth);
}
}
else
{
StringfilePath = 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;
}
public static void appendMethod(String fileName, Stringcontent)
{
try
{
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "rn");
writer.close();
}
catch(IOException e)
{
e.printStackTrace();
}
}
}
posted on 2008-09-20 16:59
流风 阅读(10049)
评论(6) 编辑 收藏
评论
# re:分享下java
读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里 2008-09-2019:33
kouprey
还好 回复 更多评论 # re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
2008-09-2021:39
流风
写下来主要是复习下知识,和整理下思路,同时也方便以后的重用。当然如果要细化还是有很多工作可以作的,例如用重载写三个同名函数分别只传入一个,两个,三个参数的,这样使用起来就更加方便了,另外按照惯例优先配置的方法可以采用如果传入某个参数是默认生成什么格式的文件,返回什么格式的值关之类的。 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里[未登录]
2008-09-2023:13
Dennis
以上的 code 有引起 forever recursion 和占用大量多的记忆体的危险这是一般的 bug pattern
也是 Java 档案操作不好用的原因
Java 没有能力处理进阶 file system 的 symbolic link / hard link / junctionpoint
Java 也不善长作一般的档案操作
要用上 Java7 才引入的 JSR203 NIO2才会得到改善 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
2010-02-2221:21
彭玲西
import java.io.*;import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class FileViewer {
public static void main(String[] args) {
//List arrayList =FileViewer.getListFiles("d:/com","html",true);
//读取d:/com下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件)
//List arrayList =FileViewer.getListFiles("d:/com","java",true);
//经试验,后缀不能不填写,否则编译不通过,提示“FileViewer.java:17: 非法的表达式开始”。
//另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件
List arrayList = FileViewer.getListFiles("d:/com","",true);
if(arrayList.isEmpty())
{
System.out.println("没有符号要求的文件");
}
else
{
String message = "";
message += "符号要求的文件数:" + arrayList.size() + "rn";
System.out.println(message);
for (Iterator i = arrayList.iterator(); i.hasNext();)
{
String temp = (String) i.next();
System.out.println(temp);
message += temp + "rn";
}
//将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常
//java.io.FileNotFoundException: d:ajaxmenu.txt(系统找不到指定的路径。)
//如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。
appendMethod("d:/menu.txt",message);
}
}
public static List fileList = new ArrayList();
public static List getListFiles(String path, String suffix, booleanisdepth)
{
File file = new File(path);
return FileViewer.listFile(file ,suffix, isdepth);
}
public static List listFile(File f, String suffix, booleanisdepth)
{
//是目录,同时需要遍历子目录
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();
System.out.println("suffix = "+suffix);
if(suffix =="" || suffix == null)
{
//后缀名为null则为所有文件
System.out.println("----------------");
fileList.add(filePath);
}
else
{
int begIndex = filePath.lastIndexOf(".");//最后一个.(即后缀名前面的.)的索引
String tempsuffix = "";
if(begIndex != -1)//防止是文件但却没有后缀名结束的文件
{
tempsuffix = filePath.substring(begIndex + 1,filePath.length());
}
if(tempsuffix.equals(suffix))
{
fileList.add(filePath);
}
System.out.println("|||||||||||||||||||");
}
}
return fileList;
}
public static void appendMethod(String fileName, Stringcontent)
{
try
{
//打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content + "rn");
writer.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
2010-02-2221:24
彭玲西
另外在同一个目录新建个BAT文件run.bat,内容为:@ echo off
java FileViewer
则双击就可,在d:menu.txt中看到结果了。
http://tieba.baidu.com/f?kw=������ 回复 更多评论
# re: 分享下java读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里[未登录]
2012-04-12 15:55
晶晶
获取到所有的Jsp文件之后,怎么解析Jsp文件里面的内容,并提取所有的链接资源,最后判断这些资源是否存在?
相关文章推荐
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写到文件里
- 分享下java 读取目录及子目录下指定文件名的路径 并放到一个List数组里面返回遍历和写
- 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数
- 编写一个Python程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
- 编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
- Python 在当前目录以及其子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- Java设计模式之《组合模式》及应用场景(遍历指定路径下的文件目录和文件为例子)
- 黑马程序员高级学习视频IO输入输出流 将一个指定目录下的java文件的绝对路径,存储到一个文本文件中
- Python:编写函数,能在当前目录以及子目录下查找文件名包含指定字符串的文件,并打印出完整路径
- python 文件和目录 当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。
- java读取目录下所有csv文件数据,存入三维数组并返回
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- Java 遍历指定目录及子目录下的文件
- golang遍历某个目录下的文件,并读取文件名到一个csv文件
- java 压缩文件 传入文件数组,压缩文件,在指定路径下生成指定文件名的压缩文件
- java小程序,用java在指定目录或以及子目录中找出同名文件,java File过滤文件名后找同名文件
- 一个使用多线程删除指定目录及子目录下所有指定文件的Java程序(源码)
- 【代码】当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径