File类---Day28

概述

  java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 

构造方法

  1.public File(String pathname) :通过将给定的路径名获得File对象

  2.public File(String parent, String child) :从父路径名字符串和子路径名获得File对象。

  3.public File(File parent, String child) :从父抽象路径名和子路径名获得File对象。 

 1 package demosummary.file;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * public File(String pathname) :通过将给定的路径名获得File对象
 7  * public File(String parent, String child) :从父路径名字符串和子路径名获得File对象
 8  * public File(File parent, String child) :从父抽象路径名和子路径名获得File对象
 9  */
10 public class FileDemo1 {
11     public static void main(String[] args) {
12         //public File(String pathname) :通过将给定的路径名获得File对象
13         String pathname = "d:\\a.txt";
14         File file = new File(pathname);
15 
16         //public File(String parent, String child) :从父路径名字符串和子路径名获得File对象
17         String parent = "d:\\a";
18         String child = "a.txt";
19         File file1 = new File(parent, child);
20 
21         //public File(File parent, String child) :从父抽象路径名和子路径名获得File对象
22         File parentDir = new File("d:\\a");
23         String child1 = "a.txt";
24         File file2 = new File(parentDir, child1);
25     }
26 }

  备注:  

    1. 一个File对象代表硬盘中实际存在的一个文件或者目录。

    2. 无论该路径下是否存在文件或者目录,都不影响File对象的创建。

绝对路径和相对路径(最开始已了解,再次复习)

  绝对路径:从盘符开始的路径,这是一个完整的路径。

  相对路径:相对于项目目录的路径,这是一个便捷的路径,开发中经常使用。

文件创建和删除方法

  1.public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。

  2.public boolean delete() :删除由此File表示的文件或目录。

  3.public boolean mkdir() :创建由此File表示的目录。

  4.public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。

 1 package demosummary.file;
 2 
 3 import java.io.File;
 4 import java.io.IOException;
 5 
 6 /**
 7  *   1.public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
 8  *
 9  *   2.public boolean mkdir() :创建由此File表示的目录。
10  *
11  *   3.public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
12  *
13  *   4.public boolean delete() :删除由此File表示的文件或目录。
14  */
15 public class FileCreat {
16     public static void main(String[] args) throws IOException {
17         //1.public boolean createNewFile() :当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
18         File file = new File("a.txt");
19         System.out.println("是否创建文件:"+file.createNewFile());
20 
21         //2.public boolean mkdir() :创建由此File表示的目录。
22         File file1 = new File("newDir");
23         System.out.println("是否创建目录:"+file1.mkdir());
24 
25         //3.public boolean mkdirs() :创建由此File表示的目录,包括任何必需但不存在的父目录。
26         File file2 = new File("newDir\\newDir");
27         System.out.println("是否创建多级目录:"+file2.mkdirs());
28 
29         //4.public boolean delete() :删除由此File表示的文件或目录。
30         System.out.println("是否删除文件:"+file.delete());
31         System.out.println("是否删除目录:"+file2.delete());
32         //delete方法,如果此File表示目录,则目录必须为空才能删除
33     }
34 }

常用方法

  1.public String getAbsolutePath() :返回此File的绝对路径名字符串。

  2.public String getPath() :将此File转换为路径名字符串。

  3.public String getName() :返回由此File表示的文件或目录的名称。

  4.public long length() :返回由此File表示的文件的长度。 

 1 package demosummary.file.fileresources;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  *   public String getAbsolutePath() :返回此File的绝对路径名字符串。
 7  *
 8  *   public String getPath() :将此File转换为路径名字符串。
 9  *
10  *   public String getName() :返回由此File表示的文件或目录的名称。
11  *
12  *   public long length() :返回由此File表示的文件的长度。
13  */
14 public class FileDemo2 {
15     public static void main(String[] args) {
16         File file = new File("d:\\1.txt");
17         System.out.println("文件的绝对路径:"+file.getAbsolutePath());
18         System.out.println("文件的构造路径:"+file.getParent());
19         System.out.println("文件名:"+file.getName());
20         System.out.println("文件的长度:"+file.length());
21         /**
22          * 输出结果
23          * 文件的绝对路径:d:\1.txt
24          * 文件的构造路径:d:\
25          * 文件名:1.txt
26          * 文件的长度:15
27          */
28     }
29 }

  length(),表示文件的长度。但是File对象表示目录,则返回值未指定

文件或目录的判断方法

  1.public boolean exists() :此File表示的文件或目录是否实际存在。

  2.public boolean isDirectory() :此File表示的是否为目录。

  3.public boolean isFile() :此File表示的是否为文件。

 1 package demosummary.file;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  *   1.public boolean exists() :此File表示的文件或目录是否实际存在。
 7  *
 8  *   2.public boolean isDirectory() :此File表示的是否为目录。
 9  *
10  *   3.public boolean isFile() :此File表示的是否为文件。
11  */
12 public class FileDetermine {
13     public static void main(String[] args) {
14         File file = new File("d://1.txt");
15         File file1 = new File("d://1.txt");
16         File file2 = new File("d://Download");
17         System.out.println("文件或目录是否存在:"+file.exists());
18         System.out.println("是否为文件:"+file1.isFile());
19         System.out.println("是否为目录:"+file2.isDirectory());
20         /**
21          * 输出结果
22          * 文件或目录是否存在:true
23          * 是否为文件:true
24          * 是否为目录:true
25          */
26 
27     }
28 }

目录的遍历

  1.public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
  2.public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。

 

 1 package demosummary.file;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 1.public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
 7  * 2.public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
 8  */
 9 public class FileIterate {
10     public static void main(String[] args) {
11         //1.public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
12         File dir = new File(".//src//demosummary//file");
13         String[] list = dir.list();
14         for (String s : list) {
15             System.out.println(s);
16         }
17 
18         System.out.println("--------分割线--------");
19         
20         //2.public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
21         File[] files = dir.listFiles();
22         for (File file : files) {
23             System.out.println(file);
24         }
25 
26         /**
27          * 输出结果
28          * a.txt
29          * FileCreat.java
30          * FileDemo1.java
31          * FileDemo2.java
32          * FileDetermine.java
33          * FileIterate.java
34          * fileresources
35          * --------分割线--------
36          * .\src\demosummary\file\a.txt
37          * .\src\demosummary\file\FileCreat.java
38          * .\src\demosummary\file\FileDemo1.java
39          * .\src\demosummary\file\FileDemo2.java
40          * .\src\demosummary\file\FileDetermine.java
41          * .\src\demosummary\file\FileIterate.java
42          * .\src\demosummary\file\fileresources
43          */
44     }
45 }
 1 package demosummary.file;
 2 
 3 import java.io.File;
 4 
 5 /**
 6  * 1.public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
 7  * 2.public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
 8  */
 9 public class FileIterate {
10     public static void main(String[] args) {
11         //1.public String[] list() :返回一个String数组,表示该File目录中的所有子文件或目录。
12         File dir = new File(".//src//demosummary//file");
13         String[] list = dir.list();
14         for (String s : list) {
15             System.out.println(s);
16         }
17 
18         System.out.println("--------分割线--------");
19         
20         //2.public File[] listFiles() :返回一个File数组,表示该File目录中的所有的子文件或目录。
21         File[] files = dir.listFiles();
22         for (File file : files) {
23             System.out.println(file);
24         }
25 
26         /**
27          * 输出结果
28          * a.txt
29          * FileCreat.java
30          * FileDemo1.java
31          * FileDemo2.java
32          * FileDetermine.java
33          * FileIterate.java
34          * fileresources
35          * --------分割线--------
36          * .\src\demosummary\file\a.txt
37          * .\src\demosummary\file\FileCreat.java
38          * .\src\demosummary\file\FileDemo1.java
39          * .\src\demosummary\file\FileDemo2.java
40          * .\src\demosummary\file\FileDetermine.java
41          * .\src\demosummary\file\FileIterate.java
42          * .\src\demosummary\file\fileresources
43          */
44     }
45 }

  调用listFiles方法的File对象,表示的必须是实际存在的目录,否则返回null,无法进行遍历。 

posted @ 2019-12-04 00:23  CeliaTodd  阅读(373)  评论(0编辑  收藏  举报