概述
1、表示一个路径,可以是文件的路径,也可以是文件夹的路径 2、这个路径可以是存在的,也允许是不存在的
File对象的作用
a. 表示一个路径 b. 可以通过调用File类中定义的方法,操作本地文件或目录
构造函数 1 2 3 4 5 6 7 8 根据文件路径字符串创建文件对象 pulbic File(String pathname) 根据父路径字符串和子路径字符串创建文件对象(pathname + child拼接后,再创建对象) public File(String pathname,String child) 根据父路径 文件对象 和子路径字符串创建文件对象 public File(File parent,String child)
注意:由于File
本身是表示一个路径,所以我们不能使用无参构造函数创建File对象
例题:
1 2 3 4 5 6 7 8 9 10 File file01 = new File ("E:\\Users\\C\\Desktop\\a.txt" );File file02 = new File ("E:\\Users\\C\\Desktop" ,"a.txt" );File file03 = new File ("E:\\Users\\C\\Desktop" ); File file04 = new File (file03,"a.txt" );
File中常用方法 1 2 3 4 5 6 7 8 public bool isDirectory() 判断是否是文件夹 public bool isFile() 判断是否是文件 public bool exits() 判断File表示的路径是否存在 public long length 返回文件的大小(字节数量) public String getAbsolutePath() 返回文件的绝对路径 public String getPath() 返回定义文件时使用的路径 public String getName() 返回文件的名称,带后缀 public long lastModified() 返回文件的最后修改时间(时间毫秒值)
例题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 File file = new File ("D:\\Lenovo\\桌面\\a.txt" );boolean bool01 = file.isDirectory();System.out.println(bool01); boolean bool02 = file.isFile();System.out.println(bool02); boolean bool03 = file.exists();System.out.println(bool03); long size = file.length();System.out.println(size); String path = file.getAbsolutePath();System.out.println(path); String path02 = file.getPath();System.out.println(path02); String fileName = file.getName();System.out.println(fileName); long date = file.lastModified();System.out.println(date);
创建和删除的方法 1 2 3 4 public boolean createNewFile() 创建一个空的文件夹 public boolean mkdir() 创建单个文件夹 public boolean mkdirs() 创建多级文件夹 public boolean delete() 删除文件,空文件夹
例题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 File file01 = new File ("D:\\Lenovo\\桌面\\b.txt" ); boolean bool01 = file01.createNewFile();System.out.println(bool01); File file02 = new File ("D:\\Lenovo\\桌面\\ee\\ff" );boolean bool02 = file02.mkdir();System.out.println(bool02); File file03 = new File ("D:\\Lenovo\\桌面\\ee\\ff" );boolean bool03 = file03.mkdirs();System.out.println(bool03); File file04 = new File ("D:\\Lenovo\\桌面\\b.txt" );boolean bool04 = file04.delete();System.out.println(bool04); File file05 = new File ("D:\\Lenovo\\桌面\\ee\\ff" );boolean bool05 = file05.delete();System.out.println(bool05);
获取路径下的所有文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 获取目录下的文件,并进行遍历 方法: public File[] listFiles() 获取当前路径下的所有内容 注意: 1. 当路径不存在时,则返回null 2. 当路径表示的是文件时,返回null 3. 当路径表示的是一个空文件夹时,则返回一个长度为0的数组 4. 当路径是一个有内容的文件夹时,则返回文件夹内的所有文件和文件夹(数组的形式返回) 5. 当路径是一个 “隐藏文件夹” 时,则会将文件夹和文件(包括隐藏文件)全部返回(以数组的形式) 6. 当路径是一个 “需要权限”的文件夹时,则返回null 其他方法: listRoots()、list()、list(FilenameFilter filter)、listFiles(FileFilter filter)、 listFiles(FilenameFilter filter)
例题: listFiles()
:获取路径下的所有内容(文件/文件夹)
1 2 3 4 5 6 7 8 9 10 File file = new File ("D:\\Lenovo\\桌面\\ee" );File[] files = file.listFiles(); for (File file1 : files) { boolean bool = file1.delete(); System.out.println(bool); }
listRoots()
:静态方法,获取系统中的所有盘符
1 File[] arr = File.listRoots();
list()
:获取当前路径下的所有内容(只能获取文件名称/文件夹名称)
1 2 3 4 5 File file01 = new File ("D:\\Lenovo\\桌面\\ee" );String[] strings = file01.list();
list(FilenameFilter filter)
:利用文件名过滤,获取当前路径下的所有内容
1 2 3 4 5 6 7 8 9 10 11 12 13 String[] strings1 = file01.list(new FilenameFilter () { @Override public boolean accept (File dir, String name) { return false ; } });