概念
- 通过file对象来描述一个具体的文件,file对象可以对应到一个真实的存在的对象,也可以对应到一个不存在的对象
- file对象 可以是个文件也可以是个目录
- file创建出来的对象,只对文件本身做操作,比如移动,删除,重命名等,但是其不关信文件内部的写入和读出
属性
修饰符及类型 | 属性 | 说明 |
---|---|---|
static String | pathSeparator | 依赖于系统的路径分隔符,String 类型的表示 |
static char | pathSeparator | 依赖于系统的路径分隔符,char 类型的表示 |
构造方法
签名 | 说明 |
---|---|
File(File parent, String child) | 根据父目录 + 孩子文件路径,创建一个新的 File 实例 |
File(String pathname) | 根据文件路径创建一个新的 File 实例,路径可以是绝对路径或者 相对路径 |
File(String pathname) | 根据父目录 + 孩子文件路径,创建一个新的 File 实例,父目录用 路径表示 |
方法
修饰符及返回 值类型 | 方法签名 | 说明 |
---|---|---|
String | getParent() | 返回 File 对象的父目录文件路径 |
String | getName() | 返回 FIle 对象的纯文件名称 |
String | getPath() | 返回 File 对象的文件路径(看你构造时传入的参数) |
String | getAbsolutePath() | 返回 File 对象的绝对路径 |
String | getCanonicalPath() | 返回 File 对象的修饰过的绝对路径(比如工作目录和相对路径拼接出现./ 这样原地他不得情况就会删除合并) |
boolean | exists() | 判断 File 对象描述的文件是否真实存在 |
boolean | isDirectory() | 判断 File 对象代表的文件是否是一个目录 |
boolean | createNewFile() | 根据 File 对象,自动创建一个空文件。成功创建后返 回 true |
boolean | delete() | 根据 File 对象,删除该文件。成功删除后返回 true |
void | deleteOnExit() | 根据 File 对象,标注文件将被删除,删除动作会到 JVM 运行结束(程序结束)时才会进行 |
String[] | list() | 返回 File 对象代表的目录下的所有文件名 |
File[] | listFiles() | 返回 File 对象代表的目录下的所有文件,以 File 对象 表示 |
boolean | mkdir() | 创建 File 对象代表的目录 |
boolean | mkdirs() | 创建 File 对象代表的目录,如果必要,会创建中间目 录 |
boolean | renameTo(File dest) | 进行文件改名,也可以视为我们平时的剪切、粘贴操 作 |
boolean | canRead() | 判断用户是否对文件有可读权限 |
boolean | canWrite() | 判断用户是否对文件有可写权限 |
具体方法示例
方法测试
//File使用
public class Demo1 {
public static void main(String[] args) throws IOException {
//windows 支持\和/ ,linux 只能 /, windows 使用\ 一定要\\ (转义了)
//File file = new File("D:/test.txt"); //绝对路径
File file = new File("./test.txt"); //相对路径
System.out.println(file.getParent());
System.out.println(file.getName());
System.out.println(file.getPath());
//把工作目录和相对路径拼接,在idea上运行一个程序,工作目录就是项目所在的目录中
//在命令行中运行一个程序,工作目录就是命令行当前的目录
//如果你的程序运行在tomcat 中,工作目录就是tomcat下的 bin 目录
System.out.println(file.getAbsolutePath());
System.out.println(file.getCanonicalFile());
}
}
创建文件
//创建文件
public class Demo2 {
public static void main(String[] args) throws IOException {
File file = new File("./test.txt"); //相对路径
//创建文件
//可能抛出异常,比如你当前写入的路径是个非法的路径,比如创建的这个文件,对于所在的目录没有权限操作
file.createNewFile();
System.out.println(file.isFile());
System.out.println(file.exists());
System.out.println(file.isDirectory());
}
}
删除文件
//文件删除
public class Demo3 {
public static void main(String[] args) throws InterruptedException {
File file = new File("./test.txt"); //相对路径
//立即删除
//file.delete();
//等到程序结束才删除
//有些时候希望在程序运行的时候创建临时文件,出程序的时候销毁
//像office 这些软件,都会产生临时文件的功能,这个临时文件就会自动保存你当前编辑的中间状态,用于pc异常退出的恢复策略
file.deleteOnExit();
Thread.sleep(5000);
}
}
创建目录
//创建目录
public class Demo4 {
public static void main(String[] args) {
//File file = new File("./Testdir"); //相对路径
//mk == make dir == directory
//mkdir一次只能创建一层目录
//file.mkdir();
//mkdirs可以一次创建多级目录
File file = new File("./Testdir/111/222/333"); //相对路径
file.mkdirs();
}
}
文件重命名
//文件重命名
public class Demo5 {
public static void main(String[] args) throws IOException, InterruptedException {
//重名名+原地移动
// File file = new File("./test.txt"); //相对路径
// File file2 = new File("./test2.txt"); //相对路径
// file.createNewFile();
// file.renameTo(file2);
//重命名+移动位置
File file = new File("./test.txt"); //相对路径
File file2 = new File("./src/test2.txt"); //相对路径
file.renameTo(file2);//移动到src文件中,如果不改名字则是单纯的移动
}
}