IO流-----File类与Properties集合



IO流----File类与Properties集合

 

1.概念:用来将文件或者文件夹封装成对象,方便对文件与文件夹进行操作。File对象可以作为参数传递给流的构造函数。

 

2.创建File对象

 Eg:

    public static voi consMethod()

   {

File f1=new File(c:\\abc\\a.txt);//a.txt封装成file对象,绝对路径

File f2=new File(c:\\abc,b.txt);//将目录与文件分成两个参数传递

File d=new File(c:\\abc);

File f3=new File(d,c.txt);//这种写法与第二种效果相同

Fil f4 =new File( c:+File.separator+abc\\a.txt);//File.separator跨平台的分隔符

}

 

3.File类常见方法:

  3.1创建

   boolen createNewFile()//在指定位置创建文件,如果该文件已经存在,则不创建,

   返回false.和输出流不一样,输出流对象创建文件,如果文件已经存在,则会覆盖。

   boolean mkdir()//创建文件夹

   boolean mkdirs()// 创建多级文件夹

  3.2删除 

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

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

  3.3判断

      boolean exists()//文件是否存在

      isFile();//是否是一个标准文件

      isDirectory();//是否是一个目录

      isHidden();//是否是一个隐藏文件

      isAbsolute()//是否为绝对

  3.4获取信息

      getName();//返回文件名

      getAbsolutePath()//返回绝对路径

      lastModified()//最后修改时间

      getPath()//返回路径

      getParent()//返回绝对路径中的父目录,如果获取的是相对路径,返回为null.

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

   3.5.调用list方法的file对象必须是封装了一个目录。该目录还必须存在。

 

4.接口FilenameFilter,实现此接口的类实例可用于过滤器文件名。

      Eg:

         File dir=new File("C:\\");//定义File类对象dir

         //过滤C盘目录下的.java文件

         File [] files=dir.listFiles(new FilenameFilter() {

        public boolean accept(File dir, String name) {

       // TODO Auto-generated method stub

       return name.endsWith(".java");}

        });

 

5.删除一个带内容的目录

   删除原理:window中,删除目录从里面往外删除的。

   Eg:package cn.itcast.day1;

      import java.io.File;

      public class RemoveDir {

      public static void main(String[] args) {

     // TODO Auto-generated method stub

     File dir=new File("c:\\testdir");//创建File类对象dir

        removedir(dir);//调用删除目录方法

       }

      //删除目录

      public static void removedir(File dir)

      {

      File []files=dir.listFiles();//列出目录下所有文件

      //遍历目录下文件

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

      {

       //如果文件是非隐藏或者是目录

       if(!files[i].isHidden()&&files[i].isDirectory())

        removedir(files[i]);//进行递归操作

      else

       System.out.println(files[i].delete());//删除文件

       }

       dir.delete();//删除目录

      }

      }

     

6.Properties:Propertieshashtable的子类,它具备map集合的特点,而且它里面存储的键值对都是字符串。是集合中和IO技术相结合的集合容器。该对象的特点:可以用于键值对形式的配置文件。在加载数据时,需要数据有固定的格式:=

   Eg: 

     Properties pro=new Properties();//定义一个集合对象pro

     //pro中添加元素

    pro.setProperty("123""we");

    pro.setProperty("we""34");

     //stringPropertyNames()方法,将Properties集合中键存入到Set集合

     Set<String> set=pro.stringPropertyNames();

     //遍历集合

    for(String name:set)

    {   

         //输出元素的键与值

      System.out.println(name+pro.getProperty(name));

    }


7.Properties特有方法load()将流中数据加载到集合Peoperties中。

   Eg:

FileInputStream fis=new FileInputStream(info.txt);//定义一个输入流fis

Properties pt=new Properties();//定义一个集合对象pt

Pt.load(fis);//将流加载到集合中

猜你喜欢

转载自blog.csdn.net/u010943787/article/details/20631785