Java-IO流的继承结构

时间:2022-12-26 14:57:43

一  IO流的继承结构如下

Java-IO流的继承结构

二  字节流

1.InputStream(字节流读取数据),为抽象类,不可创建对象;其具体实现需要通过子类FileInputStream(读取文件数据)、BufferedInputStream(缓冲区读取文件数据)、ObjectInputStream(反序列化)来实现

  • 常用方法:

    int read() 从输入流中读取数据的下一个字节
    read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中
    read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组,off表示存时的偏移量
    close() 关闭此输入流并释放与该流关联的所有系统资源

  • FileInputStream(读取文件数据)

    直接插在文件上,直接读取文件数据;

    构造方法:FileInputStream(File file)---其参数为File类型的变量,即FileInputStream(File file) == FileInputStream(String pathname) 

  • BufferedInputStream(缓冲区读取文件数据)

    先通过缓冲区缓存(在创建 BufferedInputStream 时,会创建一个内部缓冲区数组,默认8k大小),然后按批次读取缓冲区的数据,这样减少了读取次数,可提高效率

    构造方法:BufferedInputStream(InputStream in)---其参数为父类类型的变量,由于父类InputStream为抽象类,需要用其子类来实例化对象,

            即BufferedInputStream(InputStream in) == BufferedInputStream(new FileInputStream(File file) == BufferedInputStream(new FileInputStream(String pathname))

  • ObjectInputStream(反序列化)

    ObjectInputStream对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化重构对象

    构造方法:ObjectInputStream(InputStream in) ---创建从指定 InputStream 读取的 ObjectInputStream

    普通方法:readObject(),从 ObjectInputStream 读取对象

2. OutputStream(字节流写出数据),为抽象类,不可创建对象;其具体实现需要通过子类FileOutputStream(写出数据)、BufferedOutputStream(缓冲区写出文件数据)、ObjectOutputStream(序列化)来实现

  • 常用方法:   

    close() 关闭此输出流并释放与此流相关的所有系统资源
    flush() 刷新此输出流并强制写出所有缓冲的输出字节
    write(byte[ ] b,int off ,int len) 将指定byte数组中从偏移量off开始的len个字节写入输出流
    write(int b) 将指定的字节写入此输出流

  • FileOutputStream(读取文件数据)

    直接插在文件上,直接写出文件数据;

    构造方法:FileOutputStream(File file)---其参数为File类型的变量,即FileOutputStream(File file) == FileOutputStream(String pathname) 

  • BufferedOutputStream(缓冲区写出文件数据)

    先通过缓冲区缓存(在创建 BufferedInputStream 时,会创建一个内部缓冲区数组,默认8k大小),然后按批次读取缓冲区的数据,这样减少了读取次数,可提高效率

    构造方法:BufferedOutputStream(InputStream in)---其参数为父类类型的变量,由于父类OutputStream为抽象类,需要用其子类来实例化对象,

            即BufferedOutputStream(OutputStream in) == BufferedOutputStream(new FileOutputStream(File file) == BufferedOutputStream(new FileOutputStream(String pathname))

  • ObjectOutputStream(序列化)

    ObjectOutputStream 将 Java 对象的基本数据类型写入 OutputStream,通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。

    构造方法:ObjectOutputStream(OutputStream out)---创建写入指定 OutputStream 的 ObjectOutputStream

    普通方法:writeObject(Object obj),将指定的对象写入 ObjectOutputStream

Java-IO流的继承结构的更多相关文章

  1. java IO流的继承体系和装饰类应用

    java IO流的设计是基于装饰者模式&适配模式,面对IO流庞大的包装类体系,核心是要抓住其功能所对应的装饰类. 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的 ...

  2. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  3. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  4. Java IO流详尽解析

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  5. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  6. 【Java基础】Java IO流的总结

    Java IO流分为输入流和输出流,而输入流和输出流中又分字符流和字节流.顾名思义,输入流则是输入到程序中计算,输出流是把程序的结果输出到文件或者设备.而字符流输入输出以字符为单位,字节流则是以字节为 ...

  7. 【转载】JAVA IO 流的总结

    来自http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html,写的很详细 Java流操作有关的类或接口: Java流类图结构: 流的概念和 ...

  8. Java IO流学习总结(转)

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  9. Java IO流学习总结(1)

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...

随机推荐

  1. 06.SQLServer性能优化之---数据库级日记监控

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 之前说了一下数据库怎么发邮件:http://www.cnblogs.com/duniti ...

  2. 第三个Sprint冲刺事后诸葛亮报告

    用户反馈:还好吧. 用户数量:4 团队改进建议:思维局限太大,技术需要革新. 1.每个成员第一个sprint阶段有何需要改进? 成员 需要改进 邵家文 需要提高自己的工作效率,与创新能力,解决问题的能 ...

  3. java 使用正则表达式对文件名非法字符处理

    1.文件名在操作系统中不允许出现  / \ " : | * ? < > 故将其以空替代       Pattern pattern = Pattern.compile(&quot ...

  4. ln 命令

    ln是linux中又一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同不的链接,这个命令最常用的参数是-s,具体用法是:ln –s 源文件 目标文件. 当我们需要在不同的目录,用到相同的 ...

  5. C&plus;&plus;对象模型的那些事儿之五:NRV优化和初始化列表

    前言 在C++对象模型的那些事儿之四:拷贝构造函数中提到如果将一个对象作为函数参数或者返回值的时候,会调用拷贝构造函数,编译器是如何处理这些步骤,又会对其做哪些优化呢?本篇博客就为他家介绍一个编译器的 ...

  6. 代码:PC CSS(工作中用)

    常规内容区域的:标题和文字 2016-5-23 .p16{font-size:16px;color:#333;}/* 16号#333的标题 */ .p12-gray{font-size:16px;co ...

  7. Linux学习---GCC编译常见错误

    预处理错误: No such file or directory 出错原因:①包含错误:eg  #include <abc.h> //abc.h为用户自行编写文件 解决方法:⑴应改为#in ...

  8. Python入门到精通学习书籍推荐!

    1.Python基础教程(第2版 修订版)<Python基础教程(第2版修订版)>包括Python程序设计的方方面面,内容涉及的范围较广,既能为初学者夯实基础,又能帮助程序员提升技能,适合 ...

  9. NO&period;2:自学tensorflow之路------BP神经网络编程

    引言 在上一篇博客中,介绍了各种Python的第三方库的安装,本周将要使用Tensorflow完成第一个神经网络,BP神经网络的编写.由于之前已经介绍过了BP神经网络的内部结构,本文将直接介绍Tens ...

  10. layer父界面调用子弹窗的方法和获取子弹窗的元素值总结

    layer.open({ type: 2 ,title: false //不显示标题栏 ,closeBtn: false ,area: ['460px', '45%'] ,shade: 0.5 ,id ...