File
File对象就是表示一个路径,可以是文件路径,也可以是文件夹的路径
这个路径可以是存在的,也允许是不存在的
-
常见的方法
public File(String pathname);//根据文件路径创建文件对象 public File(String parent,String child);//根据父路径名字字符串和子路径名字字符串创建文件对象 public File(File parent,String child);//根据父路径对应文件对象和子路径名字符串创建文件对象
路径
相对路径:是不带盘符的,默认到当前项目下去找
绝对路径:是带盘符的
常见方法
在 Java 中,java.io.File
类提供了许多用于操作文件和目录的方法。以下是一些常见的方法:
一、文件基本信息获取方法
-
getName()
:
-
返回此抽象路径名表示的文件或目录的名称。
-
如果调用者是一个文件,那返回的就是文件名加文件后缀名
-
如果调用者是一个文件夹,那返回的就是一个文件夹的名字
-
例如:
-
File file = new File("test.txt");String name = file.getName();System.out.println(name); // 输出:test.txt
-
getPath()
:
-
将此抽象路径名转换为一个路径名字符串。
-
例如:
-
File file = new File("test.txt");String path = file.getPath();System.out.println(path); // 输出:test.txt(如果在当前目录下)
-
getAbsolutePath()
:
-
返回此抽象路径名的绝对路径名字符串。
-
例如:
-
File file = new File("test.txt");String absolutePath = file.getAbsolutePath();System.out.println(absolutePath); // 输出:具体的绝对路径,如 /home/user/test.txt
-
length()
:
-
返回此抽象路径名表示的文件的长度(以字节为单位)。如果文件不存在,则返回 0。
-
这个方法只能获取文件大小,单位是!!!字节
-
如果单位是M,G,可以不断除以1024
len/1024 ==KB
len/1024/1024 == MB
三次 ===G
-
这个方法无法获得文件夹的大小,需要把这个文件夹里面的文件大小都累加起来了
-
例如:
-
File file = new File("test.txt");long length = file.length();System.out.println(length);
二、文件判断方法
-
exists()
:
-
测试此抽象路径名表示的文件或目录是否存在。
-
例如:
-
File file = new File("test.txt");boolean exists = file.exists();System.out.println(exists);
-
isFile()
:
-
测试此抽象路径名表示的文件是否是一个标准文件。
-
例如:
-
File file = new File("test.txt");boolean isFile = file.isFile();System.out.println(isFile);
-
isDirectory()
:
-
测试此抽象路径名表示的文件是否是一个目录。
-
例如:
-
File file = new File("test.txt");boolean isDirectory = file.isDirectory();System.out.println(isDirectory);
三、文件操作方法
-
createNewFile()
:
-
当且仅当不存在具有此抽象路径名指定名称的文件时,不可分地创建一个新的空文件。
-
如果父级路径是不存在的那么方法会有异常
-
createNewFile方法创建的一定是一个文件,如果路径中不包括后缀名则创建的是一个没有后缀名的文件
-
例如:
-
File file = new File("newFile.txt");try {boolean created = file.createNewFile();if (created) {System.out.println("文件创建成功!");} else {System.out.println("文件已存在!");}} catch (IOException e) {e.printStackTrace();}
-
delete()
:
-
删除此抽象路径名表示的文件或目录。
-
如果删除的是文件,则直接删除,不走回收站
如果删除的是空文件夹,则直接删除,不走回收站
如果删除的是有内容的文件夹,则删除失败
-
例如:
-
File file = new File("toDelete.txt");boolean deleted = file.delete();System.out.println(deleted? "文件删除成功!" : "文件删除失败!");
四、目录操作方法
-
mkdir()
:
-
创建此抽象路径名指定的目录。
-
windows操作系统中,路径是不能重复的
-
只能创建单级文件夹,不能创建多级文件夹
-
例如:
-
File directory = new File("newDirectory");boolean created = directory.mkdir();System.out.println(created? "目录创建成功!" : "目录创建失败!");
-
mkdirs()
:
-
创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
-
既可以创建单级的文件夹也可以创建多级的
-
例如:
-
File deepDirectory = new File("parent/child/newDirectory");boolean created = deepDirectory.mkdirs();System.out.println(created? "目录创建成功!" : "目录创建失败!");
五、文件列表方法
-
list()
:
-
返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。
-
例如:
-
File directory = new File("/home/user");String[] files = directory.list();if (files!= null) {for (String file : files) {System.out.println(file);}}
-
listFiles()
:
-
返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件和目录。
-
获取文件夹里的所有内容,把所有内容放到数组中返回。依次表示
-
当调用者File表示的路径不存在时,返回null
-
当调用者File表示的路径是文件时,返回null
-
当调用者File表示的路径是一个空文件夹的时候,返回的是一个长度为0的数组
-
当调用者File表示的路径是一个有内容的文件夹时,将里面所有的文件和文件夹的路径放在File数组中返回。如果有隐藏文件夹,也一起返回
-
当调用者File表示的路径是需要权限才能访问的文件夹时,返回null
-
例如:
-
File directory = new File("/home/user");File[] files = directory.listFiles();if (files!= null) {for (File file : files) {System.out.println(file.getName());}}