黑马程序员—学习java基础9日志

  1. ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------


  2.    一,File类
  3. 1,File类用来将文件或者文件夹封装成对象。
  4.    方便对文件与文件夹进行操作。
  5.    File对象可以作为参数传递给流的构造函数
  6.    
  7.   File类常见方法:
    1,创建:
        boolean createNewFile(); 在指定位置创建文件,如果该文件已经存在,则不创建,返回false
                              和输出流不一样。输出流一建立文件,而且文件已经存在的会被覆盖。
    boolean mkdir(); 创建文件夹。
    boolean mkdirs(); 创建多级文件夹。
    2,删除:
        boolean delete(); 删除失败返回false。如果文件正在被使用,则删除不了返回false
    void deleteOnExit(); 在程序退出是删除指定文件。
    3,判断:
        boolean exists(); 判断文件是否存在。
    isFile();判断文件夹是否存在。
    isDirectory();判断目录是否存在。
    isHidden();
    isAbsolute();
    4,获取信息:
        getName();
    getPath();
    getParent();获取绝对路径中的父目录


    getAbsolutePath();获取绝对路径
    long lastModified();
    long length();

  8.           示例:
  9.             


  10.         
  11.         经典方法示例:
  12.                 
  13.                
  14. 2,列出指定目录下文件或者文件夹,包含子目录的内容。 
       也就是列出指定目录下所有内容。

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


    递归要注意:
      1,限定条件。
      2,要注意递归的次数。尽量避免内存溢出。
  16.           
  17.        代码:
  18.               
  19.            递归方法原理图:
  20.                    

  21. 3,练习:
    将一个指定目录下的java文件的绝对路径,存储到一个文本文件中。
    建立一个java文件列表文件。
    思路:
    1,对指定的目录进行递归。
    2,获取递归过程所有的java文件的路径。
    3,将这些路径存储到集合中。
    4,将集合中的数据写入到一个文件中。

  22. import java.io.*;
    import java.util.*;
    class  JavaFileListLX
    {
    public static void main(String[] args) throws IOException
    {
    File dir=new File("c:\\java");
    List<File> list=new ArrayList<File>();
    DiGui(dir,list);
    //System.out.println(list.size());
    File file=new File(dir,"java.txt");
    WriterFile(list,file.toString());
    }
    public static void DiGui(File dir,List<File> list)
    {
    File [] files=dir.listFiles();
    for(File file:files)
    {
                if(file.isDirectory())
    DiGui(file,list);
    else
    {
    if(file.getName().endsWith(".java"))
    list.add(file);//将文件存到集合中
    }
    }
    }
    public static void WriterFile(List<File> list,String javaFileList)throws IOException
        {
    BufferedWriter bufr=null;//创建文件
    try
    {
    bufr=new BufferedWriter(new FileWriter(javaFileList));
    for(File f:list)
    {
                   String path=f.getAbsolutePath();
      bufr.write(path);
      bufr.newLine();
      bufr.flush();
    }
    }
    catch (IOException e)
    {
    throw e;
    }
    finally
    {
               try
               {
    if(bufr!=null)
    bufr.close();
               }
               catch (IOException e)
               {
      throw e;
               } 
    }
    }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值