文件
我们平时谈到的"文件",指的是硬盘上的文件
硬盘(外存)和内存相比:
速度:内存比硬盘快很多
空间:内存空间比硬盘小
成本:内存比硬盘贵
持久化:内存掉电后数据丢失,外存掉电后数据还在
路径
路径是文件系统上一个文件/目录(文件夹)的具体位置
计算机的目录是有层级结构的
比如我打开一些文件
可以看到,文件系统是以树形结构来组织文件和目录的(N叉树)
文件路径:就是从树根节点出发,沿着树杈,一路往下走,到达目标文件,此时这中间经过的内容
Windows都是从"此电脑"开始.
但在表示路径的时候,可以把"此电脑"省略,直接从盘符开始表示:
D:\JAVA\IDEA\javaee\文件操作\IODemo
实际表示路径,是通过一个字符串表示,每个目录之间使用\或者/来分割
在Windows可以用\表示,在java里头要写成\\,使用转义字符
以上这个从盘符一层一层往下找的过程得到的路径就是绝对路径
从给定的某个目录出发,一层一层往下找得到的路径就是相对路径
要明确基准目录(工作目录)是啥
假设此时我们的工作目录是这个 :
那么此时上面的路径表示就是:
./IDEA/javaee/文件操作/IODemo
. 是相对路径中的一个特殊符号,表示当前目录
..也是特殊符合,表示当前目录的上级目录
文件系统上,任何一个文件对应的路径是唯一的
不会存在两个路径相同,但是文件不同的情况
在Linux中可能存在一个文件有两个不同的路径能找到它
在Windows上不存在,Windows上认为路径和文件是一一对应的
路径就相当于一个文件的"身份标识"
文本文件和二进制文件
文件文件储存的是文本
内容是以ASCII字符构成的
对于ASCII来说,表示范围是0-127
后来又搞了一些utf8之类的,就可以针对其他的语言文字符号进行编码
文本文件里储存的数据,就是遵守ASCII或者其他字符集编码所得到的文件
本质上就是字符
二进制文件存储的是二进制数据
没有任何字符集的限制
不受限制,存什么都行
当我们用记事本打开某个文件,如果看到的内容能看懂的就是文本文件
看不到乱糟糟的就是二进制文件
我打开一个.class的文件:
就会出现这种情况
文件操作系统
java标准库给我们提供了File这个类
File对象是对硬盘上一个文件的抽象表示
1.构造File对象
构造方法:
构造过程中,可以使用绝对路径/相对路径进行初始化
这个路径指向的文件,可以是真实存在的,也可以是不存在的
我们来打开IDEA目录下的test.txt
在IDEA的工作目录就是项目所在的目录
写相对路径就是以IODemo这一级为基准展开的
2.File提供了一些方法
在我们以D盘为工作目录的前提下使用几个方法:
这样看好像getPath和getAbsolutePath没什么区别
再以项目所在的目录为工作目录使用这几个方法:
就可以看出它们之中的区别了