Java IO流与文件(一)
基本概念
- 输入输出(I/O):指程序与外部设备或其他计算机交互的操作
- 通过输入输出从外界接收信息或传递信息给外界
- Java将其通过接口实现,使程序简单
- 流
- 指在计算机输入输出操作中各部件间的数据流动,是一组有序的数据集合
- 有方向
- 代表数据输入源或数据输出目的
- 屏蔽实际I/O数据处理细节,使输入输出独立于设备
- 分类
- 按传输方向分:输入流和输出流
- 按数据处理单位分:字节流和字符流
- 按流功能分:节点流、处理流
- 其数据可为原始二进制数据或经处理的特定格式的数据
- 输入输出流
- 称为数据流
- 是Java程序发送和接收数据的通道
- 输入流是从存储介质或数据通道读数据,输出流是向存储介质或数据通道写数据
- 特性
- 数据获取与发送均沿数据序列顺序进行
- 先进先出
- 一个流只有一个功能,只读或只写,
- 目的:使程序输入输出独立于相关设备
- 对于输入输出设备,只需针对流做处理,无需关心和修改源程序细节,增强了程序可移植性
- 缓冲流
- 一个流配备一个缓冲区
- 缓冲区:用于传送数据的内存块
- 向一个缓冲流写入数据时,系统将数据转发到缓冲区
- 缓冲区自动记录数据
- 当缓冲区满时,系统数据全发送到外部设备
- 缓冲流从缓冲区读数据
- 缓冲区为空时,从外部设备自动读取数据并尽可能填满缓冲区
- 一个流配备一个缓冲区
- 节点流和处理流
- 节点流:指从某个特定的数据源(节点)读/写数据的流
- 处理流:必须套接在已存在的流之上,为已存在的流提供更丰富特性
- 被套接的流可以是节点流也可以是处理流
- 指在计算机输入输出操作中各部件间的数据流动,是一组有序的数据集合
I/O流类
概述
- Java提供了java.io包,其中每个类代表一种特定输入/出流
- 其输入输出流可按处理数据单位不同分两类:面向字节和面向字符
- 面向字节流:数据处理以字节为基本单位
- 每次读取8位二进制数,也称二进制字节流或位流
- 即最小数据单元为字节
- 能处理文本文件和二进制文件数据
- 以Stream结尾
- InputStream类和OutputStream类:是所有
- 每次读取8位二进制数,也称二进制字节流或位流
- 面向字节流:数据处理以字节为基本单位