File类学习笔记

文件概述:在计算机中所有的数据都是以文件的格式来存储的
在java中认为文件是一个对象 文件类===>File 文件和目录路径名的抽象表示形式。
File类
构造方法摘要 :
  File(File parent, String child)根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
  File(String pathname)通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
  File(String parent, String child)根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
 
File类的成员方法:
 
创建功能: (如果对象指向的文件不存在,则会创建先创建文件,存在的话就不创建了)

   boolean createNewFile()当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。

   mkdirs()创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。

   mkdir()创建此抽象路径名指定的目录。

  1. /*构造方法摘要
        File(File parent, String child)
        根据 parent 抽象路径名和 child 路径名字符串创建一个新 File 实例。
        File(String pathname)
        通过将给定路径名字符串转换为抽象路径名来创建一个新 File 实例。
        File(String parent, String child)
        根据 parent 路径名字符串和 child 路径名字符串创建一个新 File 实例。
    */
    public class FileTest {
        //1.File(String pathname)
        File file1 = new File("G:\\1\\a.txt");
        //2.File(String parent, String child)  java中文件夹是一种特殊的文件,只不过文件夹中放的是其他文件或文件夹,而文件中放的是数据
        File file2 = new File("G:\\1","a.txt");
        //3.File(File parent, String child)
        File file = new File("G:\\1");
        File file3 = new File(file,"a.txt");
        //三种方式创建的File的对象是同一个,指向了G盘下名称为1的文件下的a.txt文件
    }
     1 /**
     2  * boolean createNewFile()当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
     3  * mkdirs()创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
     4  * mkdir()创建此抽象路径名指定的目录。
     5  */
     6 
     7 public class FileTest2 {
     8     public static void main(String[] args) throws IOException {
     9         //boolean createNewFile()
    10         //如果此处不指定创建地址,默认在本项目路径下创建文件;如果地址不存在或者错误则报IO异常
    11         File file = new File("G:\\1\\b.txt");
    12         boolean result = file.createNewFile();
    13         System.out.println(result);
    14     }
    15 }

/**
     * boolean createNewFile()当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
     * mkdirs()创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
     * mkdir()创建此抽象路径名指定的目录。
     */
    public static void main(String[] args) throws IOException {
        //mkdirs()创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
        //     * mkdir()创建此抽象路径名指定的目录。
        File file = new File("G:\\1\\A");
        boolean result = file.mkdir();
        System.out.println(result);
        //=================================================
        //mkdirs()方法会自动补全A文件夹之前不存在的B文件夹,也就说他可以自动创建多级的文件夹,功能比mkdir()要强大,建议使用
        File file2 = new File("G:\\1\\B\\A");
        boolean result2 = file2.mkdirs();
        System.out.println(result2);
        //==================================================
        File file3 = new File("A");//具体是创建文件还是文件夹看调用的具体方法
        //file3.createNewFile();//会在本项目路径下创建一个名称为A的文件;(没有后缀名)
        file3.mkdirs();//会在本项目路径下创建一个名称为A的文件夹;注意!同一个项目下,文件和文件夹不要重名

    }

}

删除功能:

      delete()删除由此抽象路径名表示的文件或目录。

 1 /**
 2  * delete()删除由此抽象路径名表示的文件或目录。
 3  */
 4 public class FileTest4 {
 5     public static void main(String[] args) {
 6         File file = new File("A");
 7         boolean result = file.delete();
 8         System.out.println(result);//删除成功返回true
 9         File file1 = new File("G:\\1\\b.txt");
10         boolean result2 = file1.delete();
11         System.out.println(result2);//删除成功返回true
12         //=====================================================
13         //如果删除的文件夹下还有文件会删除成功吗?
14         File file2 = new File("G:\\1\\B\\");
15         boolean result3 = file2.delete();
16         System.out.println(result3);//返回false,如果要删除的文件夹不是根目录则不会删除成功
17     }
18 }

重命名功能

    renameTo(File dest)重命名由此抽象路径名表示的文件。

 1 /**
 2  * renameTo(File dest)重命名由此抽象路径名表示的文件。
 3  * 进阶用法:完成文件的剪切+改名
 4  */
 5 public class FileTest5 {
 6     public static void main(String[] args) throws IOException {
 7         File file = new File("C");
 8         File file1 = new File("c.txt");
 9         file.mkdir();
10         file1.createNewFile();
11         //把C改名CC,c.txt改名cc.txt;
12         File file3 = new File("CC");
13         file.renameTo(file3);
14         File file4 = new File("cc.txt");
15         file1.renameTo(file4);
16         //以上比较麻烦,可以 file.renameTo(new File("CC"));
17        //===============================================
18         //此时cc.txt被移动到G盘下的文件夹1中,并且改名为ccc.txt,原tt.txt从原路径删除;
19         file4.renameTo(new File("G:\\1\\ccc.txt"));
20     }
21 }

判断功能

boolean isDirectory()测试此抽象路径名表示的文件是否为目录。
boolean isFile()测试此抽象路径名表示的文件是否为普通文件。
boolean isHidden()测试此抽象路径名命名的文件是否为隐藏文件。

boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。
boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。

boolean exists()测试此抽象路径名表示的文件或目录是否存在。

 

 1 /**boolean exists()测试此抽象路径名表示的文件或目录是否存在。
 2  *boolean isDirectory()测试此抽象路径名表示的文件是否为目录。
 3  * boolean isFile()测试此抽象路径名表示的文件是否为普通文件。
 4  * boolean isHidden()测试此抽象路径名命名的文件是否为隐藏文件。
 5  * boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。
 6  * boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。
 7  */
 8 public class FileTest6 {
 9     public static void main(String[] args) throws IOException {
10         File file = new File("C");
11         File file1 = new File("c.txt");
12         file.mkdir();
13         file1.createNewFile();
14 
15         //boolean isDirectory()测试此抽象路径名表示的文件是否为目录。
16         boolean rs = file.isDirectory();
17         System.out.println(rs);//true
18         boolean rs2 = file1.isFile();
19         System.out.println(rs2);//true
20 
21         //boolean exists()测试此抽象路径名表示的文件或目录是否存在。
22         boolean rs3 = file.exists();
23         System.out.println(rs3);//存在返回true
24         boolean rs4 = file1.exists();
25         System.out.println(rs4);//true
26 
27         //boolean canRead()测试应用程序是否可以读取由此抽象路径名表示的文件。
28         // * boolean canWrite()测试应用程序是否可以修改由此抽象路径名表示的文件。
29         if(file1.canRead()&&file1.canWrite()){
30             System.out.println("该文件可读取并且可写入");
31         };
32 
33         //boolean isHidden()测试此抽象路径名命名的文件是否为隐藏文件。
34         boolean rs5 = file1.isHidden();
35         System.out.println(rs5);//返回false,具体操作可选择文件属性设置为隐藏则返回true
36     }
37 }

 

 

 

获取功能

  相对路径,相对于当前项目的路径而言
  绝对路径,从磁盘的盘符位置开始的路径

    String getAbsolutePath()返回此抽象路径名的绝对路径名字符串
    String getPath()将此抽象路径名转换为路径名字符串。
    String getName()返回由此抽象路径名表示的文件或目录的名称。
    long length()返回由此抽象路径名表示的文件的长度。
    long lastModified()返回此抽象路径名表示的文件上次修改的时间
    String[] list()返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
    File[] listFiles()返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。

 

 1 /**
 2  String[] list()返回一个字符串数组,命名由此抽象路径名表示的目录中的文件和目录。
 3 
 4  File[] listFiles()返回一个抽象路径名数组,表示由该抽象路径名表示的目录中的文件。
 5  *
 6  */
 7 
 8 public class FileTest8 {
 9     public static void main(String[] args) {
10         //String[] list()返回一个字符串数组,该文件下所有文件和文件夹的名称。
11         File file = new File("G:\\1");
12         String[] names = file.list();
13         for (String name : names) {
14             System.out.println(name);
15         }
16         //================================
17 
18         //File[] listFiles()返回一个抽象路径名数组,表示是所有文件或文件夹对象
19         File[] files = file.listFiles();
20         for (File f : files) {
21             System.out.println(f.getAbsolutePath());
22         }
23     }
24 
25 }

 

 

 

 

猜你喜欢

转载自www.cnblogs.com/yzccc/p/12142639.html