您的位置:首页 > 职场人生

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

2014-01-24 14:51 302 查看
---------------------- <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>、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息