操作系统 --- 文件操作和IO

1. 文件路径

## 绝对路径

绝对路径

绝对路径 (absolute path) : 以一个盘符开头的路径,就是绝对路径

例如这里的 D:\java\IntelliJ IDEA Community Edition 2021.2.2\bin\idea64.exe 就是绝对路径

相对路径

相对路径 (relative path) 一般是以.或者..开头的路径.一般会有一个基准,去找对应的路径.
.就是当前目录 ..当前目录的上一目录

例如

  • D:\java\IntelliJ IDEA Community Edition 2021.2.2\bin作为基准 相对路径可以写成.\idea64.exe
  • D:\java\IntelliJ IDEA Community Edition 2021.2.2作为基准 相对路径可写成.\bin\idea64.exe
  • D:\java\IntelliJ IDEA Community Edition 2021.2.2\bin\idea64.exe作为基准 相对路径可用写成..\idea64.exe

2. Java中操作文件

Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。

2.1 File 的常用属性,方法和构造方法

属性

修饰符及类型 属性 说明
static String pathSeparator 依赖于系统的路径分隔符,String 类型的表示
static char pathSeparator 依赖于系统的路径分隔符,char 类型的表示

构造方法

签名 说明
File(File parent, String child) 根据父目录 + 孩子文件路径,创建一个新的 File 实例
File(String pathname) 根据文件路径创建一个新的 File 实例,路径可以是绝对路径或者相对路径
File(String parent, String child) 根据父目录 + 孩子文件路径,创建一个新的 File 实例,父目录用路径表示

方法

方法签名 说明
String getParent() 返回 File 对象的父目录文件路径
String getName() 返回 FIle 对象的纯文件名称
String getPath() 返回 File 对象的文件路径
String getAbsolutePath() 返回 File 对象的绝对路径
String getCanonicalPath() 返回 File 对象的修饰过的绝对路径
boolean exists() 判断 File 对象描述的文件是否真实存在
boolean isDirectory() 判断 File 对象代表的文件是否是一个目录
boolean isFile() 判断 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对象,不代表这个文件一定真实存在

使用示例1: get相关方法的使用

import java.io.File;
import java.io.IOException;

public class FileDemo1 {
   
   
    public static void main(String[] args) throws IOException {
   
   
        File file = new File("./test.txt");//这里的test.txt不一定存在
        System.out.println(file.getParent());
        System.out.println(file.getName());
        System.out.println(file.getPath());
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getCanonicalPath());
    }
}

运行结果截图:
在这里插入图片描述

使用示例2: 普通文件的创建和删除

import java.io.File;
import java.io.IOException;

public class FileDemo2 {
   
   
    public static void main(String[] args) throws IOException {
   
   
        File file = new File("./test.txt");
        System.out.println("创建前:");
        System.out.println("文件是否真实存在: "+file.exists());
        System.out.println("文件是否是一个目录: "+file.isDirectory());
        System.out.println("文件是否是一个普通文件: "+file.isFile());
        System.out.println("创建后:");
        System.out.println("文件创建是否成功: "+file.createNewFile());
        System.out.println("文件是否真实存在: "+file.exists());
        System.out.println("文件是否是一个目录: "+file.isDirectory());
        System.out.println("文件是否是一个普通文件: "+file.isFile());
        System.out.println("再次创建:");
        System.out.println("文件创建是否成功: "+file.createNewFile());
    }
}

运行结果截图:
在这里插入图片描述

使用示例3: deleteOnExit 的使用

import java.io.File;
import java.io.IOException;

public class FileDemo3 {
   
   
    public static void main(String[] args) throws IOException, InterruptedException {
   
   
        File file = new File("./test.txt");
        System.out.println(file.exists());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());

        Thread.sleep(3000);
        file.deleteOnExit();
        System.out.println(file.exists());
    }
}

代码截图:
发现运行过程中,三秒之后,输出文件存在之后,文件被删除
在这里插入图片描述

使用示例4: 单级目录的创建

import java.io.File;

public class FileDemo4 {
   
   
    public static void main(String[] args) {
   
   
        File file = new File("test");
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.mkdir());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
    }
}

运行截图:
在这里插入图片描述

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

独一无二的哈密瓜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值