Java复习02 IO流

Java复习02 IO流

首先,“IO”在计算机里面代表的是“输入/输出”(Input / Output),简单来说,就是计算机与外部世界进行数据交流的过程。比如,你在键盘上敲字,数据就输入到计算机里了,屏幕上显示出来的东西,就是输出。在Java中,IO流是用来处理这种数据输入和输出的工具。

IO流在Java里面可以分为四个主要类型:字节流(InputStream和OutputStream)、字符流(Reader和Writer)、节点流(Node Streams)和 处理流(Processing Streams)或者叫做包装流(Wrapper Streams)。

1. 字节流:

  • InputStream:这是用来读取数据的,比如从文件中读取数据,它是以字节的形式读取的,就像用水管一样,一点一点水(数据)从源头流过来。
  • OutputStream:跟InputStream相对,这是用来写数据的,比如把数据写入到一个文件里,也是一字节一字节地写。

2. 字符流:

  • Reader:这个是专门用来读取字符的,因为文本文件里的文字,实际上是以字符的形式存储的。Reader就像是专门读书的眼睛,能够一眼一眼地读文字。
  • Writer:对应于Reader,Writer是用来写字符的。它就像是在写日记,把你的故事一字一句地记录下来。

3. 节点流:

  • 节点流也叫做低级流,它直接与数据的来源或目的地连接。比如,如果数据来自一个文件,那么FileInputStreamFileOutputStream就是节点流,它们直接和文件系统中的文件交互。同样的,FileReaderFileWriter是处理文本文件的节点流。
  • 可以把节点流想象成水龙头,直接接在水管上的那个出水口,可以直接控制水的流向。

4. 处理流 或者 包装流:

  • 处理流是建立在节点流之上的。它们用于对数据进行处理,比如缓冲、格式化、压缩、加密等等。处理流的例子包括BufferedInputStreamBufferedOutputStreamBufferedReaderBufferedWriter等。这些流内部使用了节点流,但它们提供了更高级的数据处理功能。

  • 处理流就像是一个水滤器或者加热器,水通过水滤器可以过滤掉杂质,通过加热器可以变热,但最终这个水还是要从水龙头出来的,这就是处理流对节点流的包装。

所以,当在处理数据的时候,通常会首先建立一个节点流来和数据源或目的地直接连接,然后再套上一个或多个处理流来提升性能或者功能。这种设计允许我们通过不同的处理流的组合来轻松地扩展功能,而不需要改变已有的节点流。就像是可以根据需要选择不同的滤水器和加热器来处理水质和水温,而不需要每次都去改动整个水管系统。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FastAPI 是什么?深入解析

FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建基于 Python 的 API。它是一个开源项目,基于 Starlette 和 Pydantic 库构建而成,提供了强大的功能和高效的性能。 FastAPI 官网地址:fastapi.tiango…

Vue3自定义指令!!!

通过自定义指令实现菜单显示和权限控制问题。 一、新建一个在src目录下创建包directives,在包中创建一个ts文件。 import { useStore } from "/store/pinia";function hasRoles(role: any) {const pinaRoles useStore().roles;if (typeof role "s…

【RPG Maker MV 仿新仙剑 战斗场景UI (四)】

RPG Maker MV 仿新仙剑 战斗场景UI 四 三级战斗指令菜单效果代码完成效果 下篇预告 三级战斗指令菜单 仙剑1中三级战斗的菜单内容如下:使用、投掷、装备这三项。 效果 在RMMV中原始菜单中是没有这三级菜单的,因此需要重新进行添加进去。 代码 这里贴…

分布式思想

1、单体架构设计存在的问题 传统项目采用单体架构设计,虽然可以在一定的程度上解决企业问题,但是如果功能模块众多,并且将来需要二次开发.由于模块都是部署到同一台tomcat服务器中,如果其中某个模块代码出现了问题,将直接影响整个tomcat服务器运行. 这样的设计耦合性太高.不便…

19.ADC模数转换器知识点+AD单通道AD多通道应用程序示例

0. 江协科技/江科大-STM32标准库开发-各章节详细笔记-查阅传送门_江协科技stm32笔记-CSDN博客文章浏览阅读2.9k次,点赞44次,收藏128次。江协科技/江科大-STM32标准库开发-各章节详细笔记-传送门至各个章节笔记。基本上课程讲的每句都详细记录&#xff0c…

群晖 Synology Photos DSM7 自定义文件夹管理照片

背景 众所周知,目前群晖DSM7中使用Synology Photos做照片管理时,个人照片只能默认索引 /home/Photos 文件夹,但是如果个人照片很多或者用户很多时,共享文件夹/homes 所在的存储空间就会不够用 当然,如果你的存…

李彦宏“程序员将不再存在”言论被周鸿祎驳斥,网友怒怼:先把百度程序员都开除了

在 3 月 9 日央视的《对话》开年说节目上,百度创始人、董事长兼 CEO 李彦宏表示,基本上以后不会存在“程序员”这种职业了,因为只要会说话,人人都会具备程序员的能力。 “未来的编程语言只会剩下两种,一种叫做英文&am…

【刷题训练】LeetCode125. 验证回文串

验证回文串 题目要求 示例 1: 输入: s “A man, a plan, a canal: Panama” 输出:true 解释:“amanaplanacanalpanama” 是回文串。 示例 2: 输入:s “race a car” 输出:false 解释:“rac…

Java 设计模式系列:行为型-观察者模式

简介 观察者模式是一种行为型设计模式,又被称为发布-订阅(Publish/Subscribe)模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并被自动更新。 观察者…

全面解析 Axios 请求库的基本使用方法

Axios 是一个流行的基于 Promise 的 HTTP 请求库,用于在浏览器和 Node.js 中进行 HTTP 请求。它提供了简单易用的 API,可以发送各种类型的请求(如 GET、POST、PUT、DELETE等),并处理响应数据,Axios 在前端工…

朋友,代码库的“健身方案”要不要了解一下?

你有没有想过,你的代码库可能正面临“健康危机”—— 代码臃肿、低效交付、BUG隐藏、潜藏的安全风险…… “健身达人”上线 如果你的开发、安全和运维团队像是三位“健身达人”,那么极狐GitLab的DevSecOps线上成熟度评估,就是他们的“健身教…

09、用数据变量等控制 vue 项目标签中 CSS 样式的五种方法

通过 vue 中的变量值控制标签/组件样式 Ⅰ、通过 Vue3 的数据变量来控制 h1 标签样式:1、代码为:2、截图为: Ⅱ、通过 vue3 的 computed 来控制 h1 标签样式:1、代码为:2、截图为: Ⅲ、通过 vue3 的 comput…

MySQL gh-ost DDL 变更工具

文章目录 1. MDL 锁介绍2. 变更工具3. gh-ost 原理解析4. 安装部署5. 操作演示5.1. 重点参数介绍5.2. 执行变更5.3. 动态控制 6. 风险提示 1. MDL 锁介绍 MySQL 的锁可以分为四类:MDL 锁、表锁、行锁、GAP 锁,其中除了 MDL 锁是在 Server 层加的之外&am…

SpringBoot vue轮胎批发系统

SpringBoot vue轮胎批发系统 系统功能 首页 图片轮播 轮胎商品 评论 公告信息 搜索 购物车 立即购买 客服中心 登录注册 个人中心 我的订单 我的地址 我的收藏 后台管理 登录 个人中心 用户管理 轮胎分类管理 轮胎商品管理 公告信息管理 客服中心管理 轮播图管理 订单管理 …

Linux--基本知识入门

一.几个基本知识 终端: CtrlAltT 或者桌面/文件夹右键,打开终端切换为管理员: sudo su 退出:exit查看内核版本号: uname -a内核版本号含义: 5 代表主版本号;13代表次版本号;0代表修订版本号;30代表修订版本的第几次微调;数字越大表示内核越新. 二.目录…

FreeRTOS学习第10篇--队列使用示例

FreeRTOS学习第10篇–队列使用示例 本文目标:FreeRTOS学习第10篇–队列使用示例 按照本文的描述,可以进行简单的使用队列。 本文实验条件:拥有C语言基础,装有编译和集成的开发环境,比如:Keil uVision5 …

【Java 并发】AbstractQueuedSynchronizer

1 AQS 简介 在同步组件的实现中, AQS 是核心部分, 同步组件的实现者通过使用 AQS 提供的模板方法实现同步组件语义。 AQS 则实现了对同步状态的管理, 以及对阻塞线程进行排队, 等待通知等一些底层的实现处理。 AQS 的核心也包括了这些方面: 同步队列, 独占式锁的获取和释放, 共…

做一个微信小程序需要什么条件?

在移动互联网时代,微信小程序已成为连接用户与服务的重要桥梁。它们无需下载安装,使用方便,功能强大,成为商家和开发者的新宠。如果你想要开发一个微信小程序,需要满足哪些条件? 一、开发小程序的基本条件…

Redis 持久化-RDB

RDB(Redis DataBase),在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。 Redis会单独创建(fork)一个子进程来进行持久化&…

用网格大师网络重划分时,坐标原点按照XML文件原点填写,导出的瓦块文件命名不对,坐标原点该怎么填写

瓦块名称和原来不一致的原因是瓦块原点这里设置的不对,要和重建设置的瓦块原点保持一致。 网格大师是一款能够解决实景三维模型空间参考、原点、瓦块大小不统一,重叠区域处理问题的工具“百宝箱”,集格式转换、坐标转换、轻量化、瓦片重划分…