欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

File类---Day28

程序员文章站 2023-11-02 15:26:58
概述 java.io.File 类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。 构造方法 1.public File(String pathname) :通过将给定的路径名获得File对象 2.public File(String parent, String chil ......

概述

  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,无法进行遍历。