文件系统与文件

一、文件

文件是存储在硬盘上。

常见的存储设备:

容量大小

读写速度

价格

突发情况,数据是否丢失

硬盘

最大

最慢

最便宜

不丢失

内存

其次

其次

其次

丢失

CPU(寄存器、缓存)

最小

最快

最贵

丢失

文件是一组带标识、在逻辑上有完整意义的信息项序列。

对于计算机:“文件”可以是硬盘上普通的文件,也可以是硬盘上的目录(文件夹)。很多的硬件设备,也被操作系统抽象成了文件,例如:键盘、显示器、网卡等...

对于文件的很多细节,操作系统已经将其封装,文件系统,在使用的过程中,我们只需要调用相应的Api即可。

二、文件相关内容

1.文件路径

形如:D:\IO\aaa

从盘符出发,走到目标文件,将经历过的目录名字与‘/’连接在一块的形式。用/或\来分割。

在windows中,支持\和/,但在Linux中,支持/。

2.文件路径的两种不同表示方式;

(1)绝对路径

从盘符出发,一层一层检索到目标文件。例如:D:\IO\aaa\bbb

(2)相对路径

指定当前目录,从当前目录出发,一层一层检索目标文件。

假设:当前目录为:D:\IO\aaa\bbb

则,相对路径就是:./text3.txt

假设:当前目录为:D:\IO\aaa

则,相对路径就是:./bbb/text3.txt

假设:当前目录为:D:\IO\aaa\bbb\cc

则,相对路径就是:../text3.txt

其中,.表示当前目录,..表示上层目录

3.文件分类

(1)文本文件

文件的内容为合法的字符。普通英文:SCAII,中文:gbk/utf8.他们都有相对应的码表进行匹配。

(2)二进制文件

存储任何数据都可以。


(3)如何判定?

可以使用记事本打开,如果是正常内容,则是文本文件,如果乱码,则是二进制文件。

常见的二进制文件:音频、图片、视频、可执行程序、动态库、.class文件,对于.docx、.xlsx、.pptx是富文本文件,也是二进制文件。

常见的文本文件:.c、.java等。

三、常见的文件操作

针对文件系统操作:

常用的:创建文件、删除文件、列出目录内容、重命名文件等

在java中,使用File类。java.io.File;

(1)新建文件、删除文件

package Io;

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

public class IoTest7 {
    public static void main(String[] args) throws IOException {
        File file=new File("D:/IO/aaa/text.txt");//创建一个File对象,同时指定目录
        file.createNewFile();//创建文件
        //同时,如果该文件存在,就会抛出异常
        file.delete();//删除文件
        
    }
}

(2)列出目录内容

package Io;

import java.io.File;
import java.util.Arrays;

public class IoTest7 {
    public static void main(String[] args)  {
        File file=new File("D:/IO/aaa");;
        String [] list=file.list();
        System.out.println(Arrays.toString(list));
    }
}

(3)文件相关属性操作

  public static void main(String[] args) throws IOException {
        File file=new File("D:/IO/aaa/text1.txt");
        System.out.println(file.exists());
        System.out.println(file.getParent());//父目录
        System.out.println(file.getName());//文件名
        System.out.println(file.getPath());//构造方法一致
        //绝对路径
        System.out.println(file.getAbsoluteFile());//.表示当前路径,(有.没有效果一样),先找Test0408
        System.out.println(file.getCanonicalPath());//针对上面化简之后的效果
    }

  public static void main(String[] args) throws IOException {
        File file=new File("./text1.txt");
        System.out.println(file.exists());
        System.out.println(file.getParent());
        System.out.println(file.getName());
        System.out.println(file.getPath());//构造方法一致
        //绝对路径
        System.out.println(file.getAbsoluteFile());//.表示当前路径,(有.没有效果一样),先找Test0408
        System.out.println(file.getCanonicalPath());//针对上面化简之后的效果
    }

上述两段代码的区别,在于构造方法中的目录参数不同。在idea中,.是项目所在目录。

(4)其他方法

rename()To方法,文件重命名。

deleteOnExit(),对于deleteOnExit()是指:程序退出后,删除文件。

mkdir()方法,创建一层目录

mkdirs()方法,创建多层目录

后序对于文件内容的操作,在下篇文章:

对文件内容的常见操作:-CSDN博客

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值