------- Android培训、java培训 期待与您交流! ----------
流:文件是数据的静态存储形式,流是数据传输时的形态。
带Stream的都是字节流,否则为字符流
结点流(原始流):可以从或向一个特定的地方(节点)读写数据。
处理流(包裹流):是对一个已存在的流的连接和封装,通过所封装的流的功能 调用实现数据读写。
泛型:安全机制,将运行时期的问题(类型转换异常)转到了编译时期,避免了 强制类型转换
* 当操作的引用数据类型不确定时,就使用泛型。泛型其实就是指定引用数 据类型的参数范围
* 泛型的通配符:?—>未知类型 collection<?>
* 泛型的限定:
* 上限:collection< ? extends T >只接收Obj类型或其子类,存元素通常 用上限,因为这样取出都是按照上限类型运算的不会出现类型转换 隐患
* 下限:collection< ? super T >只接收Obj类型或其父类,取元素通常用 下限(不但能取出学生对象,也能取出工人对象,用人类型接收所 有子类对象)
流:
* 明确要使用的流对象方法:
1. 明确源和目的:
a) 源:InputStream--Reader
b) 目的:OutputStream--Writer
2. 明确数据是否是纯文本数据:
a) 纯文本:Writer--Reader
b) 媒体文件:OutputStream--InputStream
3. 明确具体设备:
a) 源设备:
* 硬盘:File
* 键盘:System.in
* 内存:数组
* 网络:Socket流
b) 目的设备:
* 硬盘:File
* 控制台:System.out
* 内存:数组
* 网络:Socket流
4. 是否需要其他额外功能:
* 是否需要缓冲区:buffer
* 流中的阻塞式方法必须提供结束标记否则会一直等待
* write方法一定要(换行),刷新