javaIO初步了解
数据源与程序
数据源是提供原始数据的原始媒介,常见的:数据库、文件、其它程序、内存、网络连接、IO设备。Java中把数据源都以File来表示,当然File还表示文件夹或文件不存在。文件存储在硬盘上,java不能直接对硬盘进行操作,只能通过虚拟机跟操作系统(OS)交流,然后通过OS对文件进行操作,File不一定建好了就是存在的,只是文件和目录路径的抽象表示。
对IO流的划分是以程序为中心的,流向程序的为输入流,从程序流出的为输出流。
java.io包中主要内容
类 | 说明 |
---|---|
File | 文件类 |
InputStream | 字节输入流 |
OutputStream | 字节输出流 |
Reader | 字符输入流 |
Writer | 字符输出流 |
Closeable | 关闭流接口 |
Flushable | 刷新流接口 |
Serializable | 序列化接口 |
流分类
- 以程序为中心来分类
- 输入流:数据源到程序(InputStream、Reader读进来)
- 输出流:程序到目的地(OutputStream、Writer写出去)
- 以功能(是否直接处理数据源)来分类
- 节点流:直接从数据源或目的地读写程序(流操作必须的)。[FileInputStream/FileOutputStream、ByteArrayInputStream/ByteArrayOutputStream、FileReader/FileWriter]
- 处理流(包装流):不直接连接到数据源或目的地,通过其它流进行封装。目的是简化操作和提高性能。
- 以数据来分类
- 字节流:按照字节读取数据(InputStream、OutputStream)
- 字符流:按照字符读取数据(Reader、Writer),底层还是基于字节流操作。