***内存流
ByteArrayOutputStream/ByteArrayInputStream
ByteArrayOutputStream baos =
new ByteArrayOutputStream();
分析:
(1)在内存中创建了一个可以自动增长的字节数组
(2)创建一个输入流,指向该字节数组
(3)baos.toByteArray() 查看这个字节数组里的内容
***转换流(用在字节数据和字符数据之间的转换)
InputSteramReader/OutputStreamWriter
1.InputStreamReader -(将InputStream 包装成字符流Reader)
2.OutputStreamWriter -(将OutputStream 包装成字符流Writer)
3.在使用的时候,可以再转换流上,再套上一层缓冲流。
BufferedReader -->Reader -->readLine()
BufferedWriter -->Writer -->write("str")
***数据流 处理流(套接在InputStream/OutputStream上)
int - 占用4个字节
long - 占用8个字节
float- 占用4个字节
double 占用8个字节
可以直接处理数据,而不用把数据#转换成字符#或者#字符串#处理
---------------------------------------------------------
***Print流(打印流)
PrintWriter和PrintStream都属于输出流,分别针对字符字节。
Print流不会往外抛异常,有自动的flush功能
***Object流
直接对object写入或者读出。
Serializable--标记性接口(里面没有成员和方法)
序列化--将一个对象,直接转换成字节或者流,在网络
中传输,或者直接写到硬盘中。
transient:透明的,在序列化时忽略它修饰的变量