I/O相关2

来源:互联网 发布:皇太子的王子网络剧 编辑:程序博客网 时间:2024/04/29 10:44

字节缓冲流

BufferedInputStream:字节缓冲输入流

BufferedOutputStream:字节缓冲输出流

缓冲流属于包装流(就是对其它流对象进行包装使用的 给予其他流更多功能的,而不能直接操作文件)


缓冲区在内存中,一次默认缓冲1024kb,当内存中要用到这些数据时从缓冲区取,缓冲区用完后再从内存调用设定值大小的数据进入缓冲

数据全部在缓冲区:

如果缓冲区的内容满了,那就会自动刷到文件中

借助一个方法来完成刷新操作,flush

字符缓冲流

BufferedReader:新增的方法readLine

BufferedWriter

如果使用了包装流,则关闭流的对象,任意一个都行

按习惯用的对象时哪个就关哪个

数据流(包装流)


DataInputStream/DataOutputStream

   1、能够对八大基本数据类型进行文件的读写操作,按基本数据类型所占用的字节数来读取和写入

  2、注意写入文件数据的协议,读出的时候,必须要遵循写入的顺序来读取

  3、如果说需要跳过一些字节,来读取后续字节,可以借用skip方法来实现



对象流(包装流)

类名:ObjectInputStream/ObjectOutputStream

类名:ObjectInputStream/ObjectOutputStream

作用:可以直接对对象进行读写操作:writeObjectreadObject

劣势:保存的文件会比较大(把一些无关的数据都会写入文件中)

   注意:所有跟当前对象相关的类,全部要序列化

      即 直接实现一个接口:Serializable

         该流使用方便但存储开销大




包装流:

缓冲流:

字节缓冲流:BufferedInputStreamBufferedOutputStream

字符缓冲流:BufferedReaderBufferedWriter

特点:自带缓冲区,提高读取效率

  方法上面,基本上和文件流是一致的

数据流:属于字节流:DataInputStreamDataOutputStream

特点:能够对8大基本数据类型进行读写操作

对象流:属于字节流:ObjectInputStreamObjectOutputStream

特点:能够对对象直接进行读写操作

  使用过程中所对应的类全部需要序列化(实现序列化接口)

补充点:

一、包装流可不可以再互相加进行包装?

分析:字节流和字符流的包装不能混合使用

  同一类型的包装流是可以互相包装的

    二、字符流和字节流的互相转化

字节流转化为字符流的类:InputStreamReaderOutputStreamWriter





0 0
原创粉丝点击