java的IO框架总结

Java IO框架图解与操作指南 Java的输入输出(IO)框架是任何从事Java开发的工程师都必须掌握的基础知识。在这一章中,我们将提供Java IO框架的概览,为其后的深入分析和实际应用打好基础。字符流(Character Streams)在Java中用于处理文本数据,其主要特点是以字符为单位进行I/O操作。与字节流不同,字符流使用的是Reader和Writer这两个抽象类以及它们的子类,它们将数据以16位Unicode字符形式进行读写。字符流的使用为处理文本数据提供了便利,因为大多数文本数据都是以字符形式存在,而不是字节。 阅读详情

原文地址:http://blog.youkuaiyun.com/licl19870605/article/details/5604327

可从IO的类层次,IO框架的设计模式来论述。 

总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。 
而每个流都分输入和输出,所以,总体来说,IO有四个顶层类: 
InputStream 
OutputStream 
Reader 
Writer 

而作为机器级别于机器直接交互的则是字节流: 
InputStream 
OutputStream 

以IO的中间类,进行字节流到字符流的转换过渡,通常可作为字符流类的构造参数,可指定编码: 
InputStreamReader 
OutputStreamWriter 

而字节流和字符流的缓冲容器来看有byte和char之分,所以派生出: 
ByteArrayInputStream 
ByteArrayOutputStream 
CharArrayInputStream 
CharArrayOutputStream 

以上类只是表示流的表示形式,而在传输形式上还表现为是否有缓冲。所以,可以派生出子类为可缓冲类: 
BufferInputStream 
BufferOutputStream 
BufferReader 
BufferWriter 

每一个顶层类都有对目录文件(File)的支持: 
FileInputStream 
FileOutputStream 
FileReader 
FileWriter 

在Java中,一个强大的功能就是可以对对象进行序列化,转成二进制文件输出,也就是字节流输出而不是字符流输出,所以有顶层的InputStream和OutputStream派生类: 
ObjectInputStream 
ObjectOutputStream 

流包括了节点流和过滤流,注意的是过滤流,可在读写的同时对数据进行操作,并且实现了同步操作,顶层过滤流类: 
FilterInputStream 
FilterOutputStream 
其子类则在其基础上,对节点流进行封装,常见子类有: 
BufferInputStream          BufferOutputStream 
DataInputStream            DataOutputStream 
LineNumberInputStream      PrintStream 
可参考子类的构造方法。 


以上IO操作几乎就是把流装载到内存中,对其进行操作的时候是顺序读写,而需要随机读写时: 
RandomAccessFile 


从整个类框架的结构实现的接口来看,顶层类: 
InputStream implements Closable, 
OutputStream implements Closable, Flushable 
Reader implements Closable, Readable 
Writer implements Closable, Flushable, Appendable 
各个接口方法: 
Closable: close(); 
Flushable: flush(); 
Readable: read(CharBuffer cb); 
Appendable: append(); 
从IO类使用时的规则来看,实现这些方法就是很自然的了,也是必须要实现的。如:流使用完必须关闭,流输出前必须刷新。 

注意的是,这四个顶层类都没有实现Serializable接口。 
java.io.Serializable虽然属于IO框架,但其并不是直接作用于IO框架四个顶层IO类及其子类,而是作用于其它对象,使其可被序列化,再通过IO类对其进行输入输出。如:File、ObjectStreamClass、String。 

Java IO 框架中主要应用了两个设计模式:装饰模式和适配器模式。 

姑且就把Java IO划分为元素和行为两个部分,元素则是适配,行为则是装饰加强。 

适配器模式主要在于字节流到字符流的转换和元素的包装上,如类:InputStreamReader, CharArrayReader, FileReader, PipedReader, StringReader。 
装饰模式主要在对流的强化之中,如缓冲、过滤、行定位等,如类:BufferedReader, FilterReader, LineNumberReader。 

一个典型的例子就是: 
BufferReader br = new BufferReader(new InputStreamReader(System.in)); 
综合了两种模式:把InputStream适配成InputStreamReader,再把InputStreamReader加强装饰城BufferedReader。
数据库1:数据库创建与管理(头歌云课) 在 Windows 系统中,可以直接通过 SQLServer 的应用程序连接数据库,不过很多时候在生产环境下,我们需要通过命令行来连接数据库。两个数据库,数据库名分别为 TestDb 和 MyDb 的数据库,注意先后顺序。为了完成本关任务,你需要掌握:1.如何在 Linux 系统中连接 SQLServer 数据库,2.如何创建数据库。连接的数据库是本地数据库,用户名是 sa ,密码是 ' 阅读详情

相关推荐

Python RK3588 MPP 8路视频硬解码!全体目光向我看齐!

本文重写了官方demo、加入了Zlmediakit进行拉流并通过pybind11将代码封装成so库,现在,在python中直接通过import的方式,就能完成基础的拉流解码操作,目前支持8路拉流解码!!!

m0_46303486的博客 4878

I/O框架

i/o框架的介绍

m0_61766887的博客 386

LLC混合滞回控制 vs 电压模/电流模:UCC25640x仿真对比与选型指南

在开关电源设计中,LLC谐振变换器的环路补偿是核心难点。传统电压模控制(VMC)和电流模控制(CMC)在LLC拓扑上存在环路增益漂移、动态响应慢等局限。混合滞回控制通过滞回比较器直接调制开关频率,并融合输出电压与谐振腔电流信息,实现了自适应环路增益和快速瞬态响应。该技术显著提升轻载效率与动态性能,适用于高密度适配器、快充及车载充电机等场景。本文基于UCC25640x系列,通过仿真对比三种控制策略,为工程选型与调试提供实践参考。

weixin_33925615的博客 333

IO流框架介绍

FileUtils.moveDirectory(File srcDir, File destDir) // 文件夹在内的所有文件都将移动FileUtils.moveDirectoryToDirectory(File src, File destDir, boolean createDestDir) // 以子文件夹的形式移动到另外一个文件下。FileUtils.copyURLToFile(URL source, File destination) // 把URL 里面内容复制到文件(可以下载文件)

m0_56307146的博客 298

LangGraph实战:用Python异步构建智能客服多轮对话系统(附完整代码)

本文详细介绍了如何使用LangGraph框架和Python异步编程构建一个高性能的智能客服多轮对话系统。通过将对话流程建模为有向图,结合thread_id实现多用户对话隔离,并利用异步节点提升系统并发处理能力,有效解决了传统客服系统上下文遗忘与高并发瓶颈问题。文章提供了从环境搭建、状态管理、异步优化到复杂业务逻辑与部署的完整实战代码。

weixin_29055137的博客 149

免Root抓包神器Packet Capture:安卓App数据捕获全攻略

本文详细介绍了免Root安卓抓包神器Packet Capture的安装与使用全攻略。通过利用安卓系统的VPN Service API,该工具无需Root权限即可捕获并解密App的HTTP/HTTPS网络流量。文章从核心原理、证书安装、实战抓包步骤到结果分析与常见问题排查,提供了完整指南,是移动端开发、安全测试和数据分析的实用利器。

weixin_29232507的博客 1073

Java中IO框架

Selector用于监听多个通道的事件,来通知连接打开,数据到达等操作,一个线程可以监听多个数据通道。),传入file descriptor和事件(readable、writable等)让kernel监测,当其中一个或多个fd数据就绪,就会返回结果,程序再发起真正的I/O操作(resvfrom());的IO状况,也就是说,利用Selector可使一个单独的线程管理多个Channel,其中在Win系统里面Selector默认的是Select函数,Linux默认的是epoll函数。进程发起真正的IO操作。

AlwaysBestSign_X的博客 527

【机械视觉】C#+VisionPro实战:位深图(CogImage8Grey)与Bitmap互转技巧及工业检测应用

本文详细介绍了在工业检测中如何使用C#和VisionPro实现位深图(CogImage8Grey)与Bitmap的高效互转技巧。通过实战代码示例和工业应用案例,帮助开发者解决图像处理中的常见问题,提升检测精度和系统性能,适用于半导体、汽车零部件等高精度检测场景。

weixin_29250573的博客 186

I/O框架知识

概念:内存与存储设备之间传输数据的通道。

m0_71773863的博客 740

从数据到特征:基于CAT12的MRI图像预处理实战指南

本文详细介绍了使用CAT12工具进行MRI图像预处理的完整实战流程。从数据获取、环境搭建到核心的AC-PC校正、组织分割、空间标准化与调制,逐步解析如何将原始脑影像数据转化为可用于机器学习的标准化特征图。重点阐述了预处理作为脑影像分析‘生命线’的重要性,并提供了避坑指南与自动化脚本建议,帮助研究者构建高质量的阿尔茨海默症分类模型输入特征。

weixin_29065959的博客 309

IPC-7351标准实战:如何用LPWizard_10快速生成PCB封装库(附避坑指南)

本文提供了一份详细的IPC-7351标准实战指南,手把手教你使用LPWizard_10软件快速生成符合行业标准的PCB封装库,并直接导入Cadence Allegro。文章深入解读了IPC-7351密度等级的选择逻辑,并重点分享了软件配置、QFN封装生成实战步骤,以及导出失败、焊盘异常等常见问题的避坑解决方案,旨在帮助硬件工程师提升设计效率和可靠性。

weixin_29207439的博客 153

【Java】Java的I/O框架

IO流的概念:内存与存储设备之间传输数据的通道。数据借助流传输。

yao_yaoya的博客 1447

【机器学习与数据挖掘实战 | 商务】案例03:基于k近邻算法的非侵入式电力负荷监测与分解的电力分析

本案例结合非侵入式电力负荷监测与分解的案例,重点介绍了在数据可视化的辅助下k近邻算法的应用。首先利用数据可视化寻找数据的特征,构建特征集合。然后构建k近邻模型,利用构建的特征集合训练模型,接着利用该模型对单一设备所属类别进行判定,最后计算实时用电量。

Morse_Chen的博客 2302

java IO框架分析

jave.io框架 2010-11-10 22:18:34|分类:默认分类|举报|字号订阅 可从IO的类层次,IO框架的设计模式来论述。 总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。而每个流都分输入和输出,所...

weixin_33670713的博客 1349

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Java IO框架

流的分类:按方向:输入流:将存储设备的内容到内存中输出流:将内存的内容到存储设备中按单位:字节流:以字节为单位,可以读取所有数据字符流:以字符为单位,只能读写文本数据按功能:节点流:具有实际传输数据的读写功能过滤流:在节点流的基础之上的增强功能。

Naclarb优快云的博客 1340

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

java io 框架_Java IO框架

可从IO的类层次,IO框架的设计模式来论述。总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。而每个流都分输入和输出,所以,总体来说,IO有四个顶层类:InputStreamOutputStreamReaderWriter而作为机器级别于机器直接交互的则是字节流:Inpu...

weixin_28742653的博客 114

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Java的IO框架

v。

2301_79431873的博客 999

java 的io框架_Java IO 框架整理

转自:http://tanshenghui.javaeye.com/blog/618724===================================可从IO的类层次,IO框架的设计模式来论述。总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。而每个流都分输入和...

weixin_29343657的博客 196

Java IO及Netty框架学习小结

JavaIO相关知识(BIO、NIO)、Reactor模式、Netty框架学习

go back 834

java i o框架_Java IO框架

可从IO的类层次,IO框架的设计模式来论述。总体来说,IO可以分为字节流和字符流,不同在于字符流由字节流包装而来,在IO读入之后经过JVM处理,把字节流转换成字符流。而字符流的字符采用哪种字符编码实现由JVM默认编码决定。而每个流都分输入和输出,所以,总体来说,IO有四个顶层类:InputStreamOutputStreamReaderWriter而作为机器级别于机器直接交互的则是字节流:Inpu...

weixin_35455994的博客 110

Java-io框架的认知与对比

IO框架选型与对比摘要 IO框架主要分为编程语言层库(如Java IO/NIO、Apache Commons IO)和分布式存储系统(如MinIO、FastDFS)。语言层库侧重本地文件操作,需注意资源释放;分布式框架则针对不同存储场景:MinIO适合云原生大文件存储,支持S3协议和自动扩展;FastDFS专为海量小文件优化但运维复杂。选型关键点包括性能需求、扩展性及生态兼容性,云原生场景推荐MinIO,传统小文件处理可选FastDFS。 (150字)

hhua0123的专栏 1094

【十四】Java IO框架思维导图

知识章节参考:【十四】Java IO框架

奈何的人生 1058

JAVA——IO框架

框架的形式:一般是把类、接口编译成class形式,再压缩成一个.jar结尾的文件发行出去。IO框架:封装了对java提供的对文件、数据进行操作的代码,提供更遍历的书写方式。框架就是为了解决某类问题,编写的一套类、接口等。大多数框架都是第三方研发的。commons-io:apache开源的。好处: 在框架的基础上开发,提高开发效率。

2301_79325939的博客 520

java中IO框架的使用

java中IO框架的使用1. 流字节流抽象父类文件字节流文件输入流文件输出流文件字节流的案例字节缓冲流对象流序列化反序列化注意事项字符流文件字符输入流字符流实现文本文件的复制字符缓冲流转换流File类例子:遍历文件夹删除文件夹 1. 流 概念: 内存与存储设备之间传输数据的通道。 分类 按方向【重点】: 输入流:将<存储设备>中的内容读入到<内存>中。 输出流:将<内存>中的内容写入到<存储设备>中。 按单位: 字节流:以字节为单位,可以读写所有数据。

weixin_53475254的博客 534
上一篇: java我的总结——一些基础知识和代码
下一篇: 关于反射的总结——代码体现
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值