File类
在Java中,Everything is Object!所以在文件中,也不例外!在Java中,可以用 File类来表示一个与硬盘上文件联系!!!注意:
1、File仅代表一个联系,可能文件存在,也可能不存在;
2、这里的文件可以是文件,也可以是文件夹;
IO流
文件流:从一端流动到另一端,即从java内存流动到存储介质中。存储介质包括:硬盘文件、数据库与网络等节点(数据源)。记住:一切以java内存为中心
数据分类
按处理数据单位分为:字节流和字符流 。处理数据是音频、视频、doc、文本等一切为字节流,仅能处理文本的为字符流。字节流主要由 InputStream 和OutputStream作为基类,字符流主要由Reader 和 Writer作为基类。
流向分类
输入流和输出流。Java 的输入流主要由InputStream和Reader作为基类,输出流主要由OutputStream和Writer作为基类。
操作 IO流的步骤
1)、建立联系
2)、选择流
3)、操作:写出 读取
4)、释放资源(程序中打开的文件 IO 资源不属于内存中的资源,垃圾回收无法回收,
需要显示关闭。)
输入流
抽象类:InputStream 和 Reader 。
InputStream和Reader是所有输入流的基类,它们是两个抽象类,是所有输入流的模版,其中定义的方法在所有输入流中都可以使用。
文件节点类: FileInputStream 和 FileReader
FileInputStream 和 FileReader,它们都是节点流,直接和指定文件关联
输出流
抽象类:OutputStream 和 Writer
文件节点类: FileOutputStream 和 FileWriter
缓冲流
BufferedInputStream和 BufferedReader
缓冲提高性能:字节流直接套上即可;字符缓冲流 +新增方法(不能使用多态)
转换处理流:InputStreamReader
转换流:将字节流转为字符流 处理乱码(编码集、解码集)
数据处理流:DataInputStream
可以处理基本类型+String,保留数据的类型。前提是读取顺序与写出顺序一致,否则读取数据不正确
对象处理流(反序列化):ObjectInputStream
在Java中提供了ObjectlnputStream与ObjectOutputStream这两个类用于序列化对象的操作。使用对象输出流输出序列化对象的步骤,称为序列化。使用对象输入流读入对象的过程,称为反序列化。
ObjectInputStream与ObjectOutputStream类,在输入或读取的时候,需要对象必须实现了java.io.Serializable接口。