IO输入和输出
编程语言的I/O类库中常用使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接受端对象。“流”屏蔽了实际的I/O设备中处理数据的细节。
JAVA类库中的I/O类分成输入和输出两部分,可以在JDK文档里的类层次结构中查看到。通过继承,任何Inputstream或Read派生而来的类都含有名为read()的基本方法,用于读取单个字节或者字节数组。同样,任何自OutputStream或Writer派生而来的类都含有名为write()的基本方法用于写单个字节或字节数组。但是,我们通常不会用到这些方法,它们之所以存在是因为别的类可以使用它们,以便提供更有用的接口。因此在I/O类库中很少使用单一的类来创建流对象,而是通过叠合多个对象来提供所期望的功能[装饰器模式的使用场景]
实际上,JAVA中,“流”类库让人迷惑的主要原因就在于:创建单一的结果流,却需要创建多个对象。
JAVA IO类库中有限定输入有关的类都应该继承自InputStream,与输出有关的类应该继承自OutputStream。
InputStram类型
InputStream的作用是用来表示那些从不同数据源产生输入的类。这些数据源包括:
1.字节数组
2.String对象
3.文件
4.管道,工作方式与实际管道相似,即,从一端输入,从另一端输出。
5.一个由其他种类的流组成的序列,以便我们可以将他们合并收集到一个流内。
6.其他数据源,如Internet连接等
每一种数据源都有相应的InputStream子类。另外,FilterInputStream也属于一种InputStream,为装饰器类提供基类,其中,“装饰器”类可以把属性或有用的接口与输入流相连接在一起。
OutPutStream类型
该类别的类决定了输出所要去往的目标:字节数组,文件或管道
另外,FilterOutStream为“装饰器”类提供了一个基类,装饰器类把属性或有用的接口与输出流连接了起来。
通过FilterInputStream从InputStream读取数据;以下装饰类继承FilterInputStream实现了如下功能...
通过FilterOutputStream从outputStream写入
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?