25yicms利用ASP.NET(C#)+MSSQL技术全力打造功能最强大的营销型企业网站管理系统,企业做网站系统,做网站软件,提供div+css企业网站模板。
阅读内容

Java编程IO流中的阶段性练习


时间:2014/09/13   来源:企业网站管理系统
   等工作稳定了,我就想把JavaSE剩下的部分学完,然后把JavaEE部分学习一下,最后转向我的安卓,虽说安卓的热潮已经过了,但是其实我个人认为后期还会再来一次,而且是非常的普及,原因就是后期的居家智能设备,所以我想还会有更多的机会的。
  
  那么今天下班,学习了一下Java编程中IO流的一些阶段性的练习,其实我已经把之前的都忘的超不多了,等后面我还要慢慢的复习一下。
  
  那么是阶段性的练习,那么就该有一个题目,今天的题目就是从网上找的,内容大致为:
  
  获取指定目录下,指定扩展名的文件(包含子目录中的),这些文件的绝对路径写入到一个文本文件中。简单的说,就是建立一个指定扩展名的文件的列表。
  
  思路:
  
  必须进行深度遍历;
  要在遍历的过程中进行过滤,将符合条件的内容都存储到容器中;
  对容器中的内容进行遍历,并将绝对路径写入到文件中。
  
  代码如下:
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.FilenameFilter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
public class Text {
    public static void main(String[] args) {
        File dir = new File("java01");
        FilenameFilter filter = new FilenameFilter(){
            @Override
            public boolean accept(File dir, String name) {
                return name.endsWith(".java");
            }
        };
        List<File> list = new ArrayList<File>();
        getFiles(dir, filter, list);
        File destFile = new File(dir,"javalist.txt");
        write2file(list, destFile);
    }
    /**
     * 对指定目录中的内容进行深度遍历,并按照指定过滤器进行过滤,
     * 将过滤后的内容存储到指定容器List中。
     * @param dir
     * @param filter
     * @param list
     */
    public static void getFiles(File dir,FilenameFilter filter,List<File> list){
        File[] files = dir.listFiles();
        for(File file : files){
            if (file.isDirectory()) {
                //递归
                getFiles(file,filter,list);
            }else{
                //对遍历到的文件进行过滤器的过滤,将符合条件的File对象存储到List集合中
                if (filter.accept(dir, file.getName())) {
                    list.add(file);
                }
            }
        }    
    }
    /**
     * 将读取到的文件写入到文件中
     * @param list
     * @param destFile
     * @throws IOException
     */
    public static void write2file(List<File> list,File destFile){
        BufferedWriter bufw = null;
        try {
            bufw = new BufferedWriter(new FileWriter(destFile));
            for (File file : list) {
                bufw.write(file.getAbsolutePath());
                bufw.newLine();
                bufw.flush();
            }
        } catch (Exception e) {
            throw new RuntimeException("写入失败");
        }finally{
            if(bufw!=null){
                try {
                    bufw.close();
                } catch (Exception e2) {
                    throw new RuntimeException("关闭失败");
                }
                
            }
        }
    }    
}
  其实大家多看看就能看懂的。多去回顾一下之前的知识,多练习一下你认为看不起眼的小程序。
点击次数:       打印此页  关闭