用Java实现读取计算机目录的文件

来源:互联网 发布:2016年7月出口数据 编辑:程序博客网 时间:2024/06/07 06:25
<pre name="code" class="java">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("g:/java","html",true); //读取g:/java下的以java 结尾的文件 如有子目录,包含之(后缀名为null则为所有文件) //List arrayList = FileViewer.getListFiles("g:/java","java",true); //经试验,后缀不能不填写,否则编译不通过,提示“FileViewer.java:17: 非法的表达式开始”。 //另外后缀为""时的情况需要 增加到IF 里去,否则 后缀为""时,不会显示所有文件 List arrayList = FileViewer.getListFiles("g:/java","",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"; } //将显示的文件路径写到指定的文件里,若文件不存在,则提示IO异常 //java.io.FileNotFoundException: g:\ajax\java.txt (系统找不到指定的路径。) //如果 加个文件是否存在的判断,如不存在就在当前目录新建一个,则更好。 appendMethod("g:/java.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(); 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; } /** * 方法追加文件:使用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 0
原创粉丝点击