一、文件
文件是存储在硬盘上。
常见的存储设备:
容量大小 | 读写速度 | 价格 | 突发情况,数据是否丢失 | |
硬盘 | 最大 | 最慢 | 最便宜 | 不丢失 |
内存 | 其次 | 其次 | 其次 | 丢失 |
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()方法,创建多层目录
后序对于文件内容的操作,在下篇文章: