一、java中有几种类型的流
字节流,字符流
二、字节流和字符流哪个好,如何选择
所有的硬盘上保存文件或进行传输的时候都是以字节的方法进行的,包括图片也是按字节完成,而字符是只有在内存中才会形成的,所以使用字节的操作是最多的。
字节流在操作的时候本身是不会用到缓冲区(内存)的,是与文件本身直接操作的,而字符流在操作的时候是使用到缓冲区的
字节流在操作文件时,即使不关闭资源(close方法),文件也能输出,但是如果字符流不使用close方法的话,则不会输出任何内容,说明字符流用的是缓冲区,并且可以使用flush方法强制进行刷新缓冲区,这时才能在不close的情况下输出内容
三、字符流中的缓冲区,有什么作用
1、缓冲区就是一段特殊的内存区域,很多情况下当程序需要频繁的操作一个资源则性能会很低,所以为了提升性能就可以将一部分数据暂时读写到缓存区,以后直接从此区域中读写数据
2、字符流的操作都是在缓冲区操作的,所以如果想要在字符流操作中主动将缓冲区刷新到文件,可以使用close()方法或者flush()方法
四、什么是Java序列化,如何实现序列化
序列化就是一种用来处理对象流的机制,将对象的内容进行流化,可以对流化后的对象进行读写操作,也可以传输于网络之间
需要序列化的类实现Serialize接口,此接口只是为了标注对象是可以被序列化的,然后使用对象流进行操作ObjectOutputStream