File类是代表磁盘的文件或者文件夹(即目录),但是File对象仅仅只是代表这个文件,不是真正的文件,File对象可以对文件进行操作。

创建File类对象

image.png

  1. package MyPackage_1;
  2. import java.io.File;
  3. public class MyClass{
  4. public static void main(String[] args) {
  5. /*
  6. 注意:
  7. 1.文件目录不能只使用\来表示,要使用\\或者/
  8. 2.如果文件在当前项目下,可以使用抽象路径代替绝对路径,如:如果test.txt文件在当前项目,那它的抽象路径就是“test.txt”
  9. */
  10. /*
  11. 第一种构造方法
  12. */
  13. File f1=new File("C:\\Users\\26913\\Desktop\\杂项文件\\test.txt");
  14. /*
  15. 第二种构造方法
  16. */
  17. File f2=new File("C:\\Users\\26913\\Desktop\\杂项文件\\","test.txt");
  18. /*
  19. 第三种构造方法
  20. */
  21. File dir=new File("C:\\Users\\26913\\Desktop\\杂项文件\\");
  22. File f3=new File(dir,"test.txt");
  23. System.out.println(f1.getAbsoluteFile());//输出f1的绝对路径
  24. System.out.println(f2.getAbsoluteFile());//输出f2的绝对路径
  25. System.out.println(f3.getAbsoluteFile());//输出f3的绝对路径
  26. System.out.println(f1==f2);
  27. System.out.println(f1.equals(f2));
  28. }
  29. }

运行结果:
image.png
可以看到三个File类对象所代表的文件的绝对路径相同,但是“==”和“equals()方法”的结果却不一样,这是因为“==”比较的是地址和内容(这里指代表的文件的绝对路径),f1和f2代表的文件虽然相同,但是这两个对象在内存中的地址不同。

File类常用方法

  1. package MyPackage_1;
  2. import java.io.File;
  3. import java.io.IOException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. public class MyClass{
  7. public static void main(String[] args) {
  8. File f1=new File("C:\\Users\\26913\\Desktop\\杂项文件\\test.txt");
  9. System.out.println("所指文件是否存在:"+f1.exists());
  10. System.out.println("所指文件的绝对路径:"+f1.getAbsolutePath());
  11. System.out.println("所指文件的文件名是:"+f1.getName());
  12. System.out.println("所指文件是否是隐藏文件:"+f1.isHidden());
  13. System.out.println("所指文件的字节数:"+f1.length());
  14. Date date=new Date();
  15. SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
  16. System.out.println("所指文件最后的修改时间:"+sdf.format(date));
  17. boolean x=f1.delete();
  18. System.out.println("删除文件是否成功:"+x);
  19. try {
  20. boolean y=f1.createNewFile();//如果文件已经存在了,那么该方法就会抛出异常,所以需要使用try-catch语句
  21. System.out.println("文件是否创建:"+y);
  22. } catch (IOException e) {
  23. e.printStackTrace();
  24. }
  25. }
  26. }

运行结果:
image.png

File类中对文件夹的操作

image.png
image.png
image.png