数据I/O

I/O类型

区分同步或异步(synchronous/asynchronous)。
简单来说,同步是一种可靠的有序运行机制,当我们进行同步操作时,后续的任务是等待当前调用返回,才会进行下一步;而异步则相反,其他任务不需要等待当前调用返回,通常依靠事件、回调等机制来实现任务间次序关系。
区分阻塞与非阻塞(blocking/non-blocking)。在进行阻塞操作时,当前线程会处于阻塞状态,无法从事其他任务,只有当条件就绪才能继续,比如 ServerSocket 新连接建立完毕,或数据读取、写入操作完成;而非阻塞则是不管 IO 操作是否结束,直接返回,相应操作在后台继续处理。不能一概而论认为同步或阻塞就是低效,具体还要看应用和系统特征。对于 java.io,我们都非常熟悉,我这里就从总体上进行一下总结,如果需要学习更加具体的操作,你可以通过教程等途径完成。总体上,我认为你至少需要理解一下内容。IO 不仅仅是对文件的操作,网络编程中,比如 Socket 通信,都是典型的 IO 操作目标。输入流、输出流(InputStream/OutputStream)是用于读取或写入字节的,例如操作图片文件。
而 Reader/Writer 则是用于操作字符,增加了字符编解码等功能,适用于类似从文件中读取或者写入文本信息。本质上计算机操作的都是字节,不管是网络通信还是文件读取,Reader/Writer 相当于构建了应用逻辑和原始数据之间的桥梁。
BufferedOutputStream 等带缓冲区的实现,可以避免频繁的磁盘读写,进而提高 IO 处理效率。这种设计利用了缓冲区,将批量数据进行一次操作,但在使用中千万别忘了 flush。如果不flush,数据是不会出来的,而会一直在缓冲区,知道缓冲区满位置,但如果当前的数据不满,那么就会使程序阻塞
参考下面这张类图,很多 IO 工具类都实现了 Closeable 接口,因为需要进行资源的释放。比如,打开 FileInputStream,它就会获取相应的文件描述符(FileDescriptor),需要利用 try-with-resources、 try-finally 等机制保证 FileInputStream 被明确关闭,进而相应文件描述符也会失效,否则将导致资源无法被释放。利用专栏前面的内容提到的 Cleaner 或 finalize 机制作为资源释放的最后把关,也是必要的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1620116.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【赋权算法】Python实现熵权法

在开始之前,我们先说一下信息熵的概念。 当一件事情发生,如果是意料之中,那么这个事情就并不能拿来当做茶余饭后的谈资,我们可以说这个事情并没有什么信息和价值。而当一件不可能发生的事情发生的时候,我们可能就会觉…

【软件测试】大学毕业后顶着压力,巧合的开启了我人生的新篇章......

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 小李:…

中国矿业大学徐海学院最不常见的网络工程计算机毕业设计题目推荐50例

之前有矿业大学徐海学院的童鞋在后台找我们,最近要准备毕业设计了,不会选题,希望可以帮忙给一些毕业设计题目,我整整花了一周把之前做的答辩通过的毕业设计成品进行整理,并精选一些容易实现且不会刷下来的题目列举下。…

电路叠加定理的例题

来看第二题 不擅长画这种图形,见谅 注:叠加定理中,电压源当导线短路处理,电流源当开路处理。

计算机春季高考考什么时候开始报名,2021春季高考报名时间 什么时候报名

2021春季高考报名时间是什么时候,小编整理了相关信息,来看一下! 2021春季高考报名时间 春考招生简章公布(2020年12月下旬); 春考校测方案公布(2021年1月) 春考(2021年1月); 春考出分(通常为考试后两周); 春…

【运维】hadoop集群安装(一)多节点安装

文章目录 一.Purpose二. Prerequisites三. Installation1. 节点规划2. Configuring Hadoop in Non-Secure Mode3. 准备工作4. 配置core-site.xmlhdfs-site.xmlyarn-site.xmlmapred-site.xmlworkers 4. 分发配置、创建文件夹5. 格式化6. 操作进程6.1. hdfs启动停止 6.2. yarn启动…

Mysql--技术文档--基本概念--《世界上最流行的关系型数据库之一》

官方网址 MySQL 阿丹: 作为关系型数据库管理的老大哥,一个合格的程序员多多少少一定要了解mysql库。 官方解释 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管…

Spring Boot中通过maven进行多环境配置

上文 java Spring Boot将不同配置拆分入不同文件管理 中 我们说到了,多环境的多文件区分管理 说到多环境 其实不止我们 Spring Boot有 很多的东西都有 那么 这就有一个问题 如果 spring 和 maven 都配置了环境 而且他们配的不一样 那么 会用谁的呢? 此…

二十年前的电脑配置单,大家见过吗?

去年搬家时,从角落里找到一台小时候用过的台式电脑,当时家人像宝贝供着,不让我用,后来出去读书,不知道什么时候淘汰的,现在放在角落里吃灰。如下图所示,不知道是什么牌子,还是挺重的…

无盘服务器怎么设置客户端启动,网吧无盘客户端配置向导

你知道网吧无盘客户端配置向导是怎么样的吗?网吧无盘客户端配置向导如何呢?下面是学习啦小编收集整理的网吧无盘客户端配置向导,希望对大家有帮助~~ 网吧无盘客户端配置向导 工具/原料 深度无盘网吧系统 网吧服务器设备 步骤/方法 1客户端安装完毕后,重启客户机,进入BIOS设…

网吧无盘60台服务器配置,网吧40台无盘服务器的配置

网吧40台无盘服务器的配置 内容精选 换一换 弹性云服务器(Elastic Cloud Server)是一种可随时自动获取、计算能力可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 本节定义了云耀云…

网吧无盘最新服务器配置,2018年50台机网吧无盘服务器配置

大家都知道,现在的网吧都是无盘,无盘网吧服务器和网络配置决定了网吧的大部分性能。而网吧电脑配置的性能直接影响到网吧顾客对网吧的印象。网吧顾客玩得不爽,下次自然不会再来你网吧了。所以,网吧无盘服务器的电脑配置非常关键。…

网吧服务器组装方案,网吧服务器配置方案有哪些

服务器作为硬件来说,通常是指那些具有较高计算能力,能够提供给多个用户使用的计算机。服务器与PC机的不同点很多,例如PC机在一个时刻通常只为一个用户服务。服务器与主机不同,主机是通过终端给用户使用的,服务器是通过…

网吧服务器系统如何配置,网吧服务器系统配置

网吧服务器系统配置 内容精选 换一换 支持。SFS容量型文件系统:支持为SFS容量型文件系统配置多个VPC,以使归属于不同VPC的云服务器,只要所属的VPC被添加到文件系统的VPC列表下,或云服务器被添加到了VPC的授权地址中,则实际上归属于不同VPC的云服务器也能共享访问同一个文件…

网吧电脑可以练计算机一级吗,为啥网吧电脑配置不高却不卡?真相恍然大悟

为什么网吧电脑配置不高,但从来不会觉得卡? 5月13日消息,联想官方微博解读了这一问题,原因有以下几点: 1、独享光纤网络 咱们都知道很多家里玩起来卡的游戏,在网吧玩就流畅的不行,配合着旁边队友…

网吧计算机配置特点,为何网吧电脑配置不高,但玩起来却一点都不卡?网管说出真相!...

原标题:为何网吧电脑配置不高,但玩起来却一点都不卡?网管说出真相! 自从电脑开始普及之后,网吧这个新的娱乐场所也随之诞生了。在当时我们买不起电脑的时代,我们若是想要上网玩游戏,往往都是会选…

VSCode连接服务器

Pycharm连接服务器参考我的另一篇文章Pycharm远程连接服务器_pycharm进入服务器虚拟环境终端_Jumbo星的博客-CSDN博客 本质上Pycharm和VSCode都只是IDE,没有什么好坏之分。但是因为Pycharm连接服务器(准确来说是部署)需要买professional。而…

商品管理系统开发

商品管理系统开发 程序介绍代码 程序介绍 商品管理系统主要是对商品的基本信息进行增、删、改、查以及商品的插入的操作,以便用户可以快速地对这些信息进行管理。 操作流程 用户在编译完成后会产生一个系统的可执行文件,用户只要双击可执行文件就可以进…

商品管理系统——商品库存和采购需求检索功能

一 商品库存 1 控制器 /*** 功能描述&#xff1a;商品库存分页查询** param params 过滤条件* return R 返回给前端的数据* author cakin* date 2020/11/8*/RequestMapping("/list")public R list(RequestParam Map<String, Object> params) {PageUtils page …

DevOps系列文章之 Python基础

列表 Python中的列表类似于C语言中的数组的概念&#xff0c;列表由内部的元素组成&#xff0c;元素可以是任何对象 Python中的列表是可变的 简单的理解就是&#xff1a;被初始化的列表&#xff0c;可以通过列表的API接口对列表的元素进行增删改查 1、定义列表 1.可以将列表当成…