file类
一个File类的对象可以表示一个具体的文件或目录
mkdir
创建单级文件夹
mkdirs
创建多级文件夹
delete
删除一个文件夹时,文件夹里面必须是空的
listfiles
将文件夹的子集放到一个file类型的数组中
输入及输出的概念
输入input
输出output
把java中用于对文件输入和输出的类称为流,有一些类用于输入数据的,有一些类用于输出数据的,有一些类是以字节为单位读取数据的,有一些类是以字符为单位读取数据的
字节流和字符流
字节流:读取时以字节为单位可以读取任意的文件,mp3
字符流:读取时以字符为单位可以读取文本文档
节点流与处理流
节点流:直接封装数据(最基础去读数据的流)
处理流:封装的是一个节点流对象,可以提供缓冲功能(缓冲字节输入流,默认缓冲区大小是8292个字节,也可以自己定义大小)
输入输出节点字符流
只能读文本文件,会将读到的字节结合编码表转换为一个字符编码
对象输入输出流---对象序列化
把java中的对象输出到文件中,从文件中能够把对象输入到程序中
为什么要把对象输出到文件中?
数据存储在对象中,对象是在内存中存储,一旦程序运行结束,对象就会销毁,有时需要将对象的信息长久保存,就要将对象输出到文件中,长久保存,把对象输出到文件的过程也成为对象的序列化,把对象从文件输入到程序的过程成为对象的反序列化,反序列时会生成一个新的对象,这也是创建对象的一种方式
(如果一个类需要被序列化到文件中,那么这个类需要实现Serializable接口,实现后,会自动的为该类生成一个序列化编号,编号是类的唯一标识,但是自动生成的这个编号在类信息改变后,会重新为类生成一个编号,这时,可以在类中显示的生成一个编号,这样即使类信息改变,编号也不会改变)
下图是IO结构图