java-File类

1、File类的概述和构造方法
  * A:File类的概述
      * File更应该叫做一个路径
          * 文件路径或者文件夹路径  
          * 路径分为绝对路径和相对路径
          * 绝对路径是一个固定的路径,从盘符开始
          * 相对路径相对于某个位置,在eclipse下是指当前项目下。
  * B:构造方法
      * File(String pathname):根据一个路径得到File对象
      * File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
      * File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象

2、File类的创建功能
  * A:创建功能
      * public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了
      * public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了
      * public boolean mkdirs():创建文件夹,如果父文件夹不存在,会帮你创建出来
   * 注意事项:
          * 如果你创建文件或者文件夹忘了写盘符路径,那么,默认在项目路径下。

 1 public class Demo {
 2 
 3     public static void main(String[] args) throws IOException {
 4         //demo1();
 5         File dir1 = new File("aaa");
 6         System.out.println(dir1.mkdir());
 7         
 8         File dir2 = new File("bbb.txt");                //这样写是可以的,文件夹也是可以有后缀的
 9         System.out.println(dir2.mkdir());
10         
11         File dir3 = new File("ccc\ddd");
12         System.out.println(dir3.mkdirs());                 //创建多级目录
13     }
14 
15     public static void demo1() throws IOException {
16         File file = new File("yyy.txt");
17         System.out.println(file.createNewFile());            //如果没有就创建,返回true
18         
19         File file2 = new File("zzz");
20         System.out.println(file2.createNewFile());
21     }
22 
23 }

3、File类的重命名和删除功能
  * A:重命名和删除功能
      * public boolean renameTo(File dest):把文件重命名为指定的文件路径
      * public boolean delete():删除文件或者文件夹
  * B:重命名注意事项
      * 如果路径名相同,就是改名。
      * 如果路径名不同,就是改名并剪切。
  * C:删除注意事项:
      * Java中的删除不走回收站。
      * 要删除一个文件夹,请注意该文件夹内不能包含文件或者文件夹

 1 public class Demo {
 2 
 3     public static void main(String[] args) {
 4         //demo1();
 5         File file1 = new File("yyy.txt");
 6         System.out.println(file1.delete());
 7         
 8         File file2 = new File("aaa");
 9         System.out.println(file2.delete());
10         
11         File file3 = new File("ccc");                    //如果删除一个文件夹,那么文件夹必须是空的
12         System.out.println(file3.delete());
13     }
14 
15     public static void demo1() {
16         File file1 = new File("ooo.txt");
17         File file2 = new File("D:\xxx.txt");
18         System.out.println(file1.renameTo(file2));
19     }
20 
21 }

4、File类的判断功能
  * A:判断功能
      * public boolean isDirectory():判断是否是目录
      * public boolean isFile():判断是否是文件
      * public boolean exists():判断是否存在
      * public boolean canRead():判断是否可读
      * public boolean canWrite():判断是否可写
      * public boolean isHidden():判断是否隐藏

 1 public class Demo {
 2 
 3     public static void main(String[] args) {
 4         //demo1();
 5         File file = new File("zzz");
 6         file.setReadable(false);
 7         System.out.println(file.canRead());             //windows系统认为所有的文件都是可读的
 8         file.setWritable(true);
 9         System.out.println(file.canWrite());             //windows系统可以设置为不可写
10         
11         File file2 = new File("aaa.txt");
12         System.out.println(file2.isHidden());            //判断是否是隐藏文件
13         System.out.println(file.isHidden());
14     }
15 
16     public static void demo1() {
17         File dir1 = new File("ccc");
18         System.out.println(dir1.isDirectory());            //判断是否是文件夹
19         
20         File dir2 = new File("zzz");
21         System.out.println(dir2.isDirectory());
22         
23         System.out.println(dir1.isFile());                //判断是否是文件
24         System.out.println(dir2.isFile());
25     }
26 
27 }

5、File类的获取功能
  * A:获取功能
      * public String getAbsolutePath():获取绝对路径
      * public String getPath():获取路径
      * public String getName():获取名称
      * public long length():获取长度。字节数
      * public long lastModified():获取最后一次的修改时间,毫秒值
      * public String[] list():获取指定目录下的所有文件或者文件夹的名称数组
      * public File[] listFiles():获取指定目录下的所有文件或者文件夹的File数组 

 1 public class Demo {
 2 
 3     public static void main(String[] args) {
 4         //demo1();
 5         File dir = new File("F:/双元课堂/day19/video");
 6         String[] arr = dir.list();                        //仅为了获取文件名
 7         
 8         for (String string : arr) {
 9             System.out.println(string);
10         }
11         
12         File[] subFiles = dir.listFiles();
13         
14         for (File file : subFiles) {                    //获取文件对象
15             System.out.println(file);
16         }
17      }
18 
19     public static void demo1() {
20         File file1 = new File("ccc.txt");
21         File file2 = new File("D:\双元课堂\day19\ccc.txt");
22         //System.out.println(file1.getAbsolutePath());            //获取绝对路径
23         //System.out.println(file2.getAbsolutePath());
24         
25         //System.out.println(file1.getPath());                    //获取构造方法中传入路径
26         //System.out.println(file2.getPath());
27         
28 //        System.out.println(file1.getName());                    //获取文件或者文件的名字
29 //        System.out.println(file2.getName());
30 //        
31 //        System.out.println(file1.length());
32         
33         Date d = new Date(file1.lastModified());                //文件的最后修改时间
34         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
35         System.out.println(sdf.format(d));
36     }
37 
38 }

6、文件名称过滤器的概述及使用
  * A:文件名称过滤器的概述
      * public String[] list(FilenameFilter filter)
      * public File[] listFiles(FileFilter filter)
  * B:文件名称过滤器的使用
      * 需求:判断E盘目录下是否有后缀名为.jpg的文件,如果有,就输出该文件名称

 1 public class Test {
 2 
 3     public static void main(String[] args) {
 4         File dir = new File("E:\");
 5         
 6 //        String[] arr = dir.list();                    //获取e盘下所有的文件或文件夹
 7 //        for (String string : arr) {
 8 //            if(string.endsWith(".jpg")) {
 9 //                System.out.println(string);
10 //            }
11 //        }
12         
13         /*File[] subFiles = dir.listFiles();            //获取e盘下所有的文件或文件夹对象
14         
15         for (File subFile : subFiles) {
16             if(subFile.isFile() && subFile.getName().endsWith(".jpg")) {
17                 System.out.println(subFile);
18             }
19         }*/
20         
21         String[] arr = dir.list(new FilenameFilter() {
22             
23             @Override
24             public boolean accept(File dir, String name) {
25                 //System.out.println(dir);
26                 //System.out.println(name);
27                 File file = new File(dir, name);
28                 return file.isFile() && file.getName().endsWith(".jpg");
29             }
30         });
31         
32         for (String string : arr) {
33             System.out.println(string);
34         }
35     }
36 
37 }
原文地址:https://www.cnblogs.com/hfumin/p/10247720.html