黑马程序员—File类的知识的总结及练习

来源:互联网 发布:重庆大数据招聘 编辑:程序博客网 时间:2024/06/06 02:55

---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

 

1、  练习使用File类的相关方法,包括创建文件对象、删除文件、判断文件是否可执行、判断文件是否是文件、判断文件是否存在等等。

其中使用到了一个不常见的小知识点是File类的分隔符File.separator,这个分隔符可跨平台使用。

 

publicclass FileDemo

{

    publicstaticvoid main(String[] args)throws IOException

    {

       //consMethod();

       //method_1();

       //method_2();

       //method_3();

       //method_4();

       method_5();

    }

    //创建File对象

    publicstaticvoid consMethod ()

    {

       //a.txt封装成file对象,可以将已有的和未出现的文件或者文件夹封装成对象

       File f1 = new File("c:\\abc\\a.txt");

      

       File f2 = new File("c:\\abc","a.txt");

      

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

       File f3 = new File(d,"a.txt");

      

       System.out.println(f1);

       System.out.println(f2);

       System.out.println(f3);

      

       //跨平台的路径分隔符File.separator

       File f4 = new File("c:" + File.separator +"abc"+File.separator+"a.txt");

       System.out.println(f4); 

    }

   

    publicstaticvoid method_1()throws IOException

    {

       //创建文件名

       File f = new File("file.txt");

      

       //调用createNewFile建立实体文件

       System.out.println("create:"+f.createNewFile());

      

       //调用delete删除实体文件

       System.out.println("delete:"+f.delete());

    }

   

    publicstaticvoid method_2()

    {

       File f = new File("G:\\file.txt");

      

       //判断文件是否可执行

       System.out.println("execute:"+f.canExecute());

      

       //判断文件是否存在

       System.out.println("execute:"+f.exists());

      

       //创建文件夹

       File f1 = new File("hello");

       System.out.println("mkdir:"+f1.mkdir());

      

       //创建多级文件夹

       File f2 = new File("a\\b\\c");

       System.out.println("mkdir:"+f2.mkdirs());

    }

 

    publicstaticvoid method_3()throws IOException

    {

       File f = new File("hhhh.txt");

      

       //创建文件hhhh.txt

       //f.createNewFile();

      

       //创建文件夹hhhh.txt

       f.mkdir();

      

       //判断f是否是文件夹

       System.out.println("dir:"+f.isDirectory());

      

       //判断f是否是文件夹

       System.out.println("file:"+f.isFile());

    }

   

    publicstaticvoid method_4()throws IOException

    {

       File f = new File("file.txt");

      

       //获取文件的相对路径

       System.out.println("path:"+f.getPath());

      

       //获取文件的绝对路径

       System.out.println("Absolutepath:"+f.getAbsolutePath());

      

       //获取文件的父目录

       //如果声明的是相对路径则返回为空

       System.out.println("parent:"+f.getParent());

    }

   

    publicstaticvoid method_5()throws IOException

    {

       File f1 = new File("G:\\JAVA test\\123.html");

       File f2 = new File("G:\\JAVA test\\456.html");

       f1.renameTo(f2);

    }

   

   

}

 

 

 

2、  练习:

练习

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

  建立一个java文件列表文件

 

  思路:

  1、对指定的目的进行递归

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

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

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

 

 

publicclass JavaFileList

{

    publicstaticvoid main(String[] args)throws IOException

    {

       //根据文件路径创建文件对象

       File f = new File("E:\\mySQL\\测试");

      

       //创建java文件列表父路径

       File javalist = new File("G:\\");

      

       //创建java列表的文件

       BufferedWriter bw = new BufferedWriter(new FileWriter("G:\\javalist.txt"));

      

       //执行

       javafilelist(f,bw);

    }

   

    //将一个目录下的java文件的路径写入一个文件中

    publicstaticvoid javafilelist(File dir,BufferedWriter bw)throws IOException

    {

       //获得目录下的所有文件及文件夹

       File[] files = dir.listFiles();

      

       //遍历这些文件及文件夹

       for(File f : files)

       {

           //如果文件不是文件而是文件夹,那么递归

           if(f.isDirectory())

              javafilelist(f,bw);

           else

           {

              //如果是文件就获得文件的名字与java的扩展名比较如

              //果是java文件就将它的绝对路径写入javalist文件中

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

              {

                  //获得文件的绝对路径

                  String line = f.getAbsolutePath();

                 

                  bw.write(line);

                 

                  bw.newLine();

                 

                  bw.flush();

                 

              }

                  //System.out.println(f.getAbsolutePath());

           }

       }

    }

 

}

 

3、  练习:删除文件目录下的所有文件

 

publicclass RemoveDemo

{

    publicstaticvoid main(String[] args)

    {

       //获得文件目录

       File f = new File("G:\\123");

 

       removedir(f);

    }

   

    publicstaticvoid removedir(File dir)

    {

        //获得文件目录下所有文件及文件夹

       File[] files = dir.listFiles();

      

       //遍历文件数组

       for(File f : files)

       {

           //如果是文件夹就递归执行

           if(f.isDirectory())

              removedir(f);

           else

              System.out.println(f.toString()+"::"+f.delete());

       }

      

       dir.delete();

    }

 

}

 

 

 

 

 

 

 

 


---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

0 0
原创粉丝点击