JAVA IO(二)

----------------------ASP.Net+Android+IOS开发.Net培训、期待与您交流!   ----------------------

File类常用方法

1.创建.

  boolean createNewFile():在指定位置创建文件,如果该文件已经存在,则不创建,返回false,回顾一下输出流,输出流对象会自动创建文件,而且文件已经存在,会覆盖,通过增加 true,可以避免覆盖。

  boolean mkdir():创建文件夹,仅当父类目录存在的时候,才可以创建新的目录。

  boolean mkdirs():创建多级文件夹。

 

2.删除

  boolean delete:删除失败返回false,如果文件正在被使用,则删除失败返回false;

  void deleteOnExit(); 在程序退出时删除指定文件,即使抛出异常也会进行删除,因为虚拟机在退出时会把该文件 "擦除"掉。

 

 

3.判断

  boolean exists()  :文件时否存在

  isFile():  判断类型是否为文件

  isDirectory():判断类型是否为目录

  isHideen():判断是否被隐藏

  当对File进行判断的时候,该文件必须是以实体在操作系统或者硬盘存在的时,结果才可能会返回真。这正对应我们平常对文件的操作,只有这个文件具体存在,我们才能对它删除、修改、重命名。

  isAbsolute():判断是否为绝对路径

  仅涉及到路径的判断,即使文件不存在,如果带有盘符,是绝对路径,它仍判断为真。

 

4.获取信息

  getName()  获取文件名称

  getPath()  获取文件路径

  getParent() 获取文件的绝对路径的父目录

 

  getAbsoultepath()  获取绝对路径

  lastModified()    返回文件最后一次被修改的时间

  length()           返回文件长度

5.文件列表

  listRoots      列出所有可用根目录

  list()         指定目录下的所有文件(包含隐藏文件)

   list()方法是我们日常生活中比较常用的一类机制方法。

  通过list()我们可以获取某个文件下的所有文件,也可以对目录进行删除。

5.1 获取文件

   实现方法:

public static void showDir(File dir)

{

    System.out.println(dir);

    File[] files=dir.listFiles();

    for(int x=0;x

    {

        if(files[x].isDirectory())

            showDir(files[x]);        //主要实现在这里,如果这个对象是目录,通过调用自己实现递归

        else

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

     }

}

在这个基础上我们再加上文本过滤器,那么一个文件查找功能就基本实现了

   实现方法:

FileFilter file=new FileFilter(){;
   @Override
    public boolean accept(File filePath)   //示例中返回以java和jsp结尾的文件
    {
     String fileName=filePath.getName().toLowerCase();
     if(fileName.endsWith("java")||fileName.endsWith("jsp"))
     return true;
     
    }


 

5.2 删除目录

    实现方法

public static void removeDir(File dir)

    {

        File[] files=dir.listFiles();

 

        for(int x=0;x

        {

            if(files[x].isDirectry())

                removeDir(files[x]);

             else

                 files[x].delete();    

         }

          dir.delete();              //目录中的文件被删除后,删除目录

} 


 

5.3 创建清单列表

    清单列表的创建跟获取文件类似,以将一个目录下的所有java文件名称写入一个文件当中为例。

我们可以按照下面的思路,完成这样一个操作。

① 对指定的目录进行递归

② 获取递归过程索引的java文件的名称

③ 将这些文件名称到集合中

④ 将集合中的数据写入一个文件中

   实现方法:

   //实现①-③

 public static void fileToList(File dir,List list)

   {

        File[] files=dir.listFiles();

        for(File file: files)

        {

                if(file.isDirectory())

                    fileToList(file,list)

                else

                {

                    if(file.getName().endsWith(".java"))

                                list.add(file);

                }

            }

}

//实现④ 

 public static void writeToFile(List,String javaListFile)
   {
      BufferedWriter bufw=null;
      try
      {
         bufw=new BufferedWriter(new FileWriter(javaListFile));

         for(File f:list)
         {
               String path=f.getAbsolutePath();
               bufw.write(path);
               bufw.newLine();
               bufw.flush;
          }
      }
      catch  (IOExcepiton e)
      {
              e.printStackTrace();
       }
      finally
       {
              try
               {
                  if bufw!=null
                  {
                     bufw.close();
                  }
               }
               catch(IOException e)

                {
                   throw new RuntimeException(e);
                }
        }
} 


---------------------- ASP.Net+Android+IOS开发.Net培训、期待与您交流!   ----------------------


 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值