Java IO流之File类概述

在这里插入图片描述

File

系统和路径分隔符

  • 与系统和路径有关分隔符

在这里插入图片描述

public class Demo01FIle {

    public static void main(String[] args) {

        String pathSeparator = File.pathSeparator;
        System.out.println(pathSeparator);  // 结果是分号  代表是windows系统

        String separator = File.separator;
        System.out.println(separator);      // 结果是反斜杠\  代表文件名称分隔符

    }

}

绝对路径和相对路径

  • 绝对路径:是一个完成的路径 以盘符开始

C:\a.txt
C:\Users\itcast\IdeaProjects\a.txt
D:\demo\b.txt

  • 相对路径:是一个简化的路径

相对指的是相对于当前项目的根目录(C:\Users\itcast\IdeaProjects\a.txt)
如果相对于当前项目的根目录,路径可以简化书写
C:\Users\itcast\IdeaProjects\demo\123.txt --> 简化为 123.txt(可以省略为根目录)

注意:

  • 路径是不区分大小写
  • 路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,写2个反斜杠代表1个反斜杠
  • 下图是初始化FIle对象的构造器
    在这里插入图片描述

File (String pathname)
String pathname: 字符串路径名称
路径可以是以文件结尾,也可以是以文件夹结尾
路径可以是相对路径,也可以是绝对路径
路径可以是存在,也可以是不存在
创建File对象,只是把字符串路径封装为FIle对象,不考虑路径真假情况

      File file = new File("G:\\1.jpg");
      System.out.println(file);   // 打印出来的就是  G:\1.jpg  
	
	  File file2 = new File("G:\\word\\office2003");
      System.out.println(file2);  // 打印 G:\word\office2003

File(String parent,String child)
String parent: 父路径
String child: 子路径
父路径和子路径,可以单独书写,灵活多变

	File file = new File("C:\\","1.jpg");
	System.out.println(file);  // 打印出来  C:\1.jpg;

File(File parent,String child)
File parent:父路径
String child:子路径
父路径和子路径,可以单独书写,灵活多变
父路径是File类型,可以使用FIle的方法对路径进行一些操作,再使用路径创建对象

	File file = new File("C:\\");
	File file2 = new File(file,"1.jpg");
	System.out.println(file2); // 打印 C:\\1.jpg

常用的方法

获取方法

  • public String getAbsolutePath() 返回此File的绝对路径名字符串
  • public String getPath() 将此File转换为路径名字符串
  • public String getName() 返回由此File表示的文件或目录的名称
  • public long length() 返回由此File表示的文件的长度
public static void main(String[] args) {
    File file2 = new File("G:\\word\\office2003\\office2003.rar");
    System.out.println(file2);
    String absolutePath = file2.getAbsolutePath();
    System.out.println("文件绝对路径:"+absolutePath);
    String path = file2.getPath();
    System.out.println("文件构造路径:"+path);
    String name = file2.getName();
    System.out.println("文件的名字:"+name);
    long length = file2.length();
    System.out.println("文件长度:"+length+"的字节");  
}

在这里插入图片描述

注意:

  • public long length(): 返回由此File表示的文件的长度
  • 文件夹没有大小概念,不能获取文件夹大小
  • 如果构造方法中给出的路径不存在,那么length方法返回0

判断方法

  • public boolean exists() 返回此File的路径是否存在
  • public boolean isDirectory() 此File表示是否为目录
  • public boolean isFile() 此FIle表示是否为文件
  • public boolean canExecute() 此File是否可以执行路径名的文件
  • public boolean canRead() 此File是否可读
  • public boolean canWrite() 此File是否可写
public static void main(String[] args) {
     File file2 = new File("G:\\word\\office2003\\office2003.rar");
     boolean exists = file2.exists();
     System.out.println(exists);
     boolean canRead = file2.canRead();
     System.out.println(canRead);
     boolean canWrite = file2.canWrite();
     System.out.println(canWrite);
     boolean canExecute = file2.canExecute();
     System.out.println(canExecute);
     boolean directory = file2.isDirectory();
     System.out.println(directory);
     boolean file = file2.isFile();
     System.out.println(file);
}

在这里插入图片描述

删除方法

  • public boolean createNewFile() 当前仅当具有该名称文件尚不存在时,创建一个新空文件
  • public boolean delete() 删除由此File表示的文件或目录
  • public boolean mkdir() 创建由此File表示的目录
  • public boolean mkdirs() 创建由此FIle表示的目录,包括任何必须但不存在的父目录

注意:

如果createNewFile() 路径不存在,会抛出IOExeception异常
如果delete() 文件/文件夹删除成功,返回true, 文件夹中有内容, 不会删除返回false, 构造方法中路径不存在返回false

遍历文件夹

  • public String[] list() 返回一个String数组,表示该File目录中所有子文件或目录
  • puublic File[] listFiles() 返回一个File数组,表示该FIle目录中所有子文件或目录
   File file = new File("G:\\");
   String[] list = file.list();
   for (String s : list) {
       System.out.println(s + ",");
   }

在这里插入图片描述

   File[] files = file.listFiles();
   for (File file1 : files) {
       System.out.println(file1.getPath() + "\n");
   }

在这里插入图片描述

两者都是打印路径下的所有文件或文件夹(只是当前路径下,不包括子路径),也包括所有的隐藏文件

发布了24 篇原创文章 · 获赞 33 · 访问量 2391

猜你喜欢

转载自blog.csdn.net/weixin_41241629/article/details/104291290