黑马程序员--File类的笔记(二)—— 一些应用的小例子

来源:互联网 发布:赛尔号刷米币软件 编辑:程序博客网 时间:2024/05/16 19:48
----------------------android培训、java培训、期待与您交流! ----------------------

今天又是看了一天的视频,毕老爷真是好帅啊。那种对知识点的讲解,好精辟啊!

以下程序虽小,但是都很好用啊,留起来以后必有大用啊。

文件列表

1.listRoot方法

listRoot获取系统的根路径,也就是磁盘的盘符

public static void listRootDemo()    {        File []files = File.listRoots();        for(Filefile : files)        {            System.out.println(file);        }


2.list 方法

list方法是用来得到file对象的目录文件列表 ,返回是 String [ ]

注意

 调用list方法的file对象必须是封装了一个目录,并且该目录必须存在。

public static void listDemo()    {        File f =new File("c:\\");        String []names = f.list();        for(Stringname : names)        {            System.out.println(name);        }    }

 过滤文件

文件过滤的代码

import java.io.File;import java.io.FilenameFilter; public class FileDemo4 {    public staticvoid main(String[] args) {        // TODOAuto-generated method stub     File f =new File ("c:\\");     String[]names = f.list(new FilenameFilter() {               @Override        publicboolean accept(File dir, String name) {            //File dir 指的是的File 的目录,name是文件的名字            returnname.endsWith(".txt");        }    });     for(Stringname : names)     {         System.out.println(name);     }    } }


列出指定目录文件或者文件夹夹,以及包含子目录的内容。也就是列出指定目录的所有内容。

因为目录中还有目录,只要使用同一个列出目录的功能函数完成即可。在列出过程中出现的还是目录的话,还可以在次掉用本功能。这种表现形式,或者编程方法称为递归。

使用递归应注意

    1.限定条件

    2.要注意递归的次数,尽量避免内存溢出的情况。

import java.io.File; public class FileDemo5 {    public staticvoid main(String[] args) {        // TODOAuto-generated method stub        File dir= new File("F:\\我的文档");        showDir(dir);     }    public staticvoid showDir(File fir)    {        System.out.println(fir);        File []files = fir.listFiles();        for(Filefile : files)        {              if(file.isDirectory())            {                showDir(file);            }            else                System.out.println(file);        }    } }


 将一个指定目录下的Java文件的绝对路径,存储到一个文本文件中。建立一个Java文件列表

思路:

1.对指定的目录进行递归扫描

2.过去递归过程中所有的Java文件的路径

3.将这些路径存储到集合

4.将集合中的数据写入到一个文件中。

代码如下:

import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.ArrayList;import java.util.List; public class FileDemo7 {    public staticvoid main(String[] args) {        // TODOAuto-generated method stub        File fir= new File(".");        List<File>list = new ArrayList<File>();        fileToList(fir,list);        System.out.println(list.size());        writeToFile(list,"C:\\writer.txt");     }    public staticvoid writeToFile(List<File>list,String javaListFile)    {        BufferedWriterbufw =null;        try {            bufw= new BufferedWriter(new FileWriter(javaListFile));            for(Filef:list)            {                Stringpath = f.getAbsolutePath();                bufw.write(path);                bufw.newLine();                bufw.flush();            }        } catch(IOException e) {            //TODO Auto-generated catch block            thrownew RuntimeException("书写文件失败!");        }        finally{            try {                if(bufw!=null)                bufw.close();            }catch (IOException e) {                //TODO Auto-generated catch block                thrownew RuntimeException("关闭流资源失败");            }        }    }    public staticvoid fileToList(File dir,List<File> list)    {        File[]files = dir.listFiles();        for(Filefile: files)        {            if(file.isDirectory())            {                fileToList(file,list);            }            else            {                if(file.getName().endsWith(".java"))                {                    list.add(file);                }            }        }           }}




----------------------android培训、java培训、期待与您交流! ----------------------