文件的基本操作

文章目录

    • 1. 认识文件
      • 1.1 文件的概念
      • 1.2 文件的结构
      • 1.3 文件的途径
    • 2. Java中操作文件
      • 2.1 File类:构造方法
      • 2.2 File类:方法
    • 3. 对File方法使用
      • 3.1 get系列
      • 3.2 文件的创建、删除
      • 3.3 deleteOnExit()
      • 3.4 目录的创建、删除
      • 3.5 mkdirs与mkdir
      • 3.6 改名

1. 认识文件

1.1 文件的概念

文件是存储在计算机上的信息数据集合,它可以包括文本,代码,音频,图像等很多格式。文件常被存储和传输数据,它们是计算机系统中最基本的存储单元之一。
1
上图都是文件,里面有各种数据。然后,文件除了有数据内容之外,还有一部分信息,例如文件名、文件类型、文件大小等并不作为文件的数据而存在,我们把这部分信息可以视为文件的元信息。
除此文件还可以分为二进制文件和文本文件,分别指代保存被字符集编码的文本和按照标准格式保存的非被字符集编码过的文件。

1.2 文件的结构

我们将包含许多文件的文件叫做文件夹或者目录,而文件夹中还可以拥有许多文件夹和文件,一环扣一环,就像一个大树一样,所以文件的结构是树状组织,只有最后的子叶才是真正的文件。
文件的基本操作_第1张图片

1.3 文件的途径

每一个文件在计算机中就像树一样从根到子叶有一条绝对找到的途径,我们便把这个途径称为文件的绝对途径。
3
在这里插入图片描述
上图便是一条绝对途径。
但是我们找到一个文件并不一定从根开始,我们可以从中间任意节点开始,这种情况下找到的路径,便称为相对路径。

2. Java中操作文件

Java 中通过 java.io.File 类来对一个文件(包括目录)进行抽象的描述。注意,有 File 对象,并不代表真实存在该文件。

2.1 File类:构造方法

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

2.2 File类:方法

方法 说明
getPareent() 返回File对象父目录路径
getName() 返回File对象的纯文件名字
getPath() 返回File对象文件路径
getAbsolutePath() 返回File对象的绝对路径
getCanonicalPath() 返回File对象被修饰过的绝对路径
exists() 判断File对象是否存在
isDirectory() 判断File对象是不是目录
isFile() 判断File对象是不是文件
createNewFile() 根据File对象自动创建一个空白文件,创建成功返回true
delete() 立即删除File对象
deleteOnExit() 对File对象进行删除标记,当程序运行结束,再删除File对象
list() 返回File对象下的所有文件
listFile() 返回File对象下的所有文件,以File对象表示
mkdir() 创建File对象目录
mkdirs() 创建file对象目录,如有必要创建中间目录
renameTo(File dest) 进行改名
canRead() 判断用户是否具有可读权限
canWrite() 判断用户是否具有更改权限

3. 对File方法使用

3.1 get系列

public class Test2 {
    //观察get系列的特点和差异
    public static void main(String[] args) throws IOException {
        File file = new File("..//Hello World.txt");
        System.out.println(file.getParent());//返回file的父文件目录路径
        System.out.println(file.getName());//返回file纯文件名称
        System.out.println(file.getPath());//返回file的文件路径
        System.out.println(file.getAbsolutePath());//返回file的绝对路径
        System.out.println(file.getCanonicalPath());//返回修饰过后的绝对路径
    }
}

文件的基本操作_第2张图片

3.2 文件的创建、删除

public class Test3 {
    //文件的创建、删除
    public static void main(String[] args) throws IOException {
        File file = new File("Hello.txt");//文件要不存在,方便观察
        System.out.println(file.isFile());//是否是个文件
        System.out.println(file.isDirectory());//是否是目录
        System.out.println(file.exists());//是否存在
        System.out.println(file.createNewFile());//自动创建这个文件,成功了返回true,否则false
        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());
        System.out.println(file.createNewFile());
        System.out.println(file.delete());//删除文件,成功返回true,否则false
        System.out.println(file.exists());
    }
}

文件的基本操作_第3张图片

3.3 deleteOnExit()

public class Test4 {
    //deleteOnExit,运行中不删除文件,整个代码运行结束删除文件
    public static void main(String[] args) throws IOException {
        File file = new File("Hello.txt");//文件不要存在,方便观察
        System.out.println(file.exists());
        System.out.println(file.createNewFile());
        System.out.println(file.exists());
        file.deleteOnExit();//运行中不删除文件,整个代码运行结束删除文件
        System.out.println(file.exists());
    }
}

文件的基本操作_第4张图片

3.4 目录的创建、删除

public class Test5 {
    public static void main(String[] args) {
        //目录的创建
        File dir = new File("some-dir");
        System.out.println(dir.exists());
        System.out.println(dir.isDirectory());
        System.out.println(dir.isFile());
        System.out.println(dir.mkdir());//创建目录
        System.out.println(dir.exists());
        System.out.println(dir.isFile());
        System.out.println(dir.isDirectory());
        System.out.println(dir.delete());//目录删除
    }
}

文件的基本操作_第5张图片

3.5 mkdirs与mkdir

public class Test6 {
    public static void main(String[] args) {
        //mkdirs与mkdir
        File dir = new File("some-p\\some-s");
        System.out.println(dir.isDirectory());
        System.out.println(dir.exists());
        System.out.println(dir.mkdir());//创建文件,如果中间目录不存在,会创建失败
        System.out.println(dir.isDirectory());
        System.out.println(dir.exists());
        System.out.println(dir.mkdirs());//但用mkdirs可以解决
        System.out.println(dir.exists());
        System.out.println(dir.isDirectory());
        System.out.println(dir.getParent());
        File dirp = new File(dir.getParent());
        System.out.println(dir.delete());
        System.out.println(dirp.delete());
    }
}

文件的基本操作_第6张图片

3.6 改名

public class Test7 {
    //改名
    public static void main(String[] args) {
        File hello = new File("hello.txt");//运行前:存在
        File file = new File("file.txt");//运行前:不存在
        System.out.println(file.exists());
        System.out.println(hello.exists());
        System.out.println(hello.renameTo(file));//改名为file
        System.out.println(file.exists());
        System.out.println(hello.exists());//运行后:不存在
        System.out.println(file.delete());//运行后:存在,hello改名
    }
}

你可能感兴趣的:(文件操作-IO,java,文件操作,IO)