【 IO、存储、硬盘、文件系统】

1.外存和内存

 在我们生活中,我们会经常提及文件/文件夹。我们说的文件通常指“硬盘”上的文件,也就是“外存”。有外存就会有内存,那么什么是内存呢?
 内存:内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据

外存和内存的比较
 速度:内存比硬盘(外存)快很多
 空间:硬盘(外存)比内存大很多
 成本:内存比硬盘(外存)贵
 持久性:内存掉电后数据丢失,硬盘(外存)掉电后数据存在

 我们之前的代码,如javaSE,数据结构都是围绕内存展开的,就是在内存上申请空间,Mysql主要是操作硬盘
同样的在文件io这里也是可以操作硬盘(外存)的

1.文件操作系统
 创建文件,删除文件,重命名文件,创建目录
2.文件内容操作
 针对文件进行读和写

2.路径

 我们知道要打开一个文件夹,需要一步步找到这个文件夹在哪个位置。
路径就是咋们系统上的文件/目录,具体位置
 计算机的文件和目录是有层级结构的(如图),计算机的目录是N叉树
在这里插入图片描述
 文件路径:就是从树的根节点出发,沿着树枝一直往下走,达到目标文件,中间经过的内容,表示路径的时候,一般把“此电脑”省略,直接从盘符开始
下图这就是一个路径,实际表示路径是通过一个字符串表示的,每个目录之间有‘/’或‘\’来分割
D:\gitte\javacode\javacode\23-04-02\src
在这里插入图片描述

绝对路径:
从盘符开始,一层一层往下找,这个过程得到的路径就是绝对路径
D:\gitte\javacode\javacode\23-04-02\src
在这里插入图片描述

相对路径:
从某一个给定的目录出发,一层一层往下找,得到的就是相对路径
假设我们给定的目录是 gitte
那么相对路径为:./javacode/javacode/23-04-02/src
假设我们给定的目录是 第二个javacode
那么相对路径为:./23-04-02/src

在这里插入图片描述

文件系统上,任何一个文件对应的路径,是唯一的,不是存在两个路径相同,但是文件不同的情况。
Windows上认为路径个文件是一一对应的
路径就相当于文件的“身份标识”

3.文本文件和二进制文件

文本文件存储的是文本,文本文件的内容都是由ASCII组成的
对于ASCII来说,范围是0-127,后来有添加了UTF8一类的,这样就可以针对其他类型的语言文字符号进行编码了。
二进制文件存储的是二进制数据(没有任何字符集的限制,存什么都可以,不受限制)

那么问么判定文件是不是文本文件还是二进制文件呢?
很简单,将文件用记事本打开,能看懂就是文本文件,看不懂就是二进制文件 。

例如:
txt =》文本文件
.java.c=》文本文件
.class=》二进制文件
.exe =》二进制文件
Jpg和mp3都是二进制的
word和excel也都是二进制的文件

4.文件系统操作

在Java的标准库中,提供了File这个类(File对象是硬盘上文件的“抽象”表示)

文件在硬盘上,直接通过代码访问不是很方便,于是我们在内存上创建一个对象,操作这个对象就可以间接的影响到硬盘上的文件情况了。

构造File对象
构造过程中,我们可以使用绝对路径/相对路径 进行初始化
文件可以存在也可以不存在。
java.io.File;
其中的IO指的是Input和Output即表示输入和输出
在这里插入图片描述

 同时File也提供一些方法
在这里插入图片描述
这些方法看一眼就知道怎么用,其中的createNewFile()这个需要手动调用才会创建,下面给大家简单的调用几个方法

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

public class Demo1 {
    public static void main(String[] args) throws IOException {
        File file=new File("./hello_word.txt");

        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());

        //创建文件
        file.createNewFile();

        System.out.println(file.exists());
        System.out.println(file.isDirectory());
        System.out.println(file.isFile());

        //删除文件
        file.delete();

        System.out.println(file.exists());
        System.out.println(file.isFile());
    }
}

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值