黑马程序员——File类

来源:互联网 发布:椰族部落一一永久域名 编辑:程序博客网 时间:2024/05/15 06:49

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

File类

用来将文件或者文件夹封装成对象

方便对文件与文件进行操作

File对象可以作为参数传递给流的构造函数

File类提供了多种操作文件的有用的操作,它提供了将路径名分解的方法,用于查询与路径名所指文件有关的文件系统

      一个File对象实际上表示的是一个文件的路径,而不是文件本身

File类常见方法:

 1,创建

         boolean createNewFile();   在制定位置创建文件,如果该文件已经存在,则不创建,返回false  和输出流不一样,输出流对象一建立创建文件,而且文件已经存在,会   覆 盖。

     创建文件夹:mkdir();这个方法只能创建一级目录

      mkdirs(); 创建多级目录

2,删除

      boolean delete();     删除失败,返回false

     void deleteOnExit();  在程序退出时删除指定文件

3,判断

     canExecute() 是否能执行,测试应用程序是否可以执行此抽象路径名表示的文件

     boolean exists(); 文件是否存在

     boolean isDirectory(); 判断是否是目录

     boolean  isFile();  判断是否是文件

     isHidden(); 是否是隐藏文件

     boolean  isAbsolute();  是否是绝对路径

对一个文件对象进行文件的目录和文件的判断的时候,必须判断这个文件是否存在

4.获取信息

   返回类型是字符串

getName(); 获取名称

getPath();   获取路径

getParent();  获取父目录    这个方法返回的是绝对路径中的父目录

            如果获取的是相对路径,则返回的是null

            如果相对路径中有上一层目录,那么该目录就是返回结果

getAbsolutePath();  获取绝对父目录

long  lastModified();获取文件最后一次修改的时间

long length(); 获取文件的大小

 

5,目录列表

    String[]  list():返回File实例所指目录中的所有文件或子目录的名字组成的字符串数组。若当前File实例表示的是普通文件而不是一个目录,则返回null

    File[]  listFiles():如果File实例所指的不是一个目录,那么此方法将返回null。否则返回一个File对象数组,每个数组元素对应目录中的每个文件或目录。如果目录为空,那么数组也将为空

 

例子:列出指定目录下文件或者文件夹,包含子目录中的内容,也就是列出指定目录下所有内容

     因为目录中还有目录,只要使用同一个列出目录功能的函数完成即可

     在列出过程中出现的还是目录的话,还可以再次调用本功能

     也就是函数自身调用自身

     这种表现形式,或者编程手法,称为递归   

     递归注意条件:

                  1.      限定条件

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

递归形式来查看所有目录:

 import java.io.*;

class DirDemo

{

public static void main(String[] args)

{

   File dir=new File("f:\\aa");

   showDir(dir);

}

public static void showDir(File dir)

{

   System.out.println(dir);

   File[] files=dir.listFiles();

   for(int x=0;x<files.length;x++)

   {

        if(files[x].isDirectory())

            showDir(files[x]);

       else

          System.out.println(files[x]);

    }

}

}

练习:

将一个指定目录下的java文件按的绝对路径,存储到一个文本文件中

建立一个java文件列表文件

 

思路:

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

2.获取递归过程所有的java文件的路径

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

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

Properties概述:

Propertieshashtable的子类

也就是说它具备map集合的特点,而且它里面存储的键值对都是字符串

 

是集合中和IO技术相结合的集合容器

 

该对象的特点:可以用于键值对形式的配置文件那么在加载数据时,需要数据有固定的格式  =

setProperty(); 设置元素

getProperty();  获取元素

练习:用于记录应用程序运行次数

     如果使用次数已到,那么给出注册提示

 

     很容易想到的是:计数器,

可是该计数器定义在程序镇南关,随着程序的运行而存在,并进行自增

可是随着该应用程序的退出,该计数器也在内存中消失了

下一次启动该程序时,又重新开始从0计数

这样不是我们想要的,想要的是,程序既使结束,该计数器的值也存在

下次程序启动时会先加载该计数器的值闭并加1后在重新存储起来

所以要建立一个配置文件,用于记录该软件的使用次数

 

该配置文件使用键值对的形式,这样便于阅读书籍,并操作数据

 

键值对数据是map集合

数据是以文件形式存储,使用io技术

那么map+io    就是Properties

 

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

 

0 0
原创粉丝点击