JavaSE——数据类型流、内存流、打印流
声明:本栏目所使用的素材都是凯哥学堂VIP学员所写,学员有权匿名,对文章有最终解释权;凯哥学堂旨在促进VIP学员互相学习的基础上公开笔记。
数据类型流
DataOutputStream是数据类型输出流,它能把基本数据类型直接写入到文件里;
DataInputStream是数据类型输入输流,它能把基本数据类型直接读到程序上来,前面写出去的是什么顺序,读进来时就按写的顺序读,顺序读反了会出乱码或数据不正确,所有的流都是按先进先出原则。 先写到文件里:
再从文件里读进来:
内存流
在内存中,数组就是一块存放数据的区域,所以数组也叫数据缓存区,那么字节数组也是缓存区。
ByteArrayInputStream是字节数组输入流,这个类在new对象时要给定一个字节数组,这个数组就是字节数组输入流内部的缓存区。以前我们是在磁盘文件上读取数据,现在是从内存中读取数据,读取的数据源就是字节输入流内部的缓存区,所以字节输入流的功能就是把字节数组转换成输入流,即ByteArrayInputStream将一个字节数组当作流输入的来源:
ByteArrayOutputStream是字节数组输出流,它内部也有一个缓存区,new对象时不用分配,默认是32个字节,它的功能是把流转换成字节数组,就是把字节写入到缓存区里面,与字节输入流相反,即ByteArrayOutputStream可以将一个字节数组当作流输出目的地。 字节输出流有两个方法可以把缓存区的数据拿出来:toString()和toByteArray()。
内存流结构图:
内存流存在的意义:字节输出流可以截取内存数据,当一个方法需要一个输出流时,把字节输出流给这个方法,这个方法里面运算的数据就会写入到字节输出流中,当调用close()方法时,缓存区里面的数据也不会消失,除非关闭程序了,然后我们就可以拿出缓存区里面的数据。
打印流
PrintStream打印流,它可以把信息打印到任何地方,磁盘文件和控制台,它可以打印一般的信息,也可以打印异常信息。new对象时给定一个输出流,它就把信息打印到这个输出流指向的地方。它可以打印任何数据信息。System类有两个方法可以设置输出流setOut()和setErr(),可以把打印流放进去: