系列二、IO流原理及流的分类
一、概述
IO是Input、Output的缩写,IO流技术是非常实用的技术,用于处理数据传输,例如读写文件,网络通讯等。在Java程序中,对于数据的输入/输出操作以"流(stream)"的方式进行,java.io包下提供了各种"流"类和接口,用以获取不同种类的数据,并通过相关API实现输入或者输出数据。
二、流的分类
- 按操作数据单位不同分为:字节流(8bit)二进制文件,字符流(按字符)文本文件;
- 按数据流的流向不同分为:输入流、输出流
- 按流的角色不同分为:节点流、处理流/包装流
- Java中的IO流共涉及到40多个类,实际上非常有规律,都是从如上4个抽象基类派生出来的
- 由这四个抽象派生基类派生出来的子类名称都是以其父类名作为子类名的后缀

三、体系图

相关文章:
系列二、IO流原理及流的分类
一、概述 IO是Input、Output的缩写,IO流技术是非常实用的技术,用于处理数据传输,例如读写文件,网络通讯等。在Java程序中,对于数据的输入/输出操作以"流(stream)"的方式进行ÿ…...
【算法教程】排列与组合的实现
数据准备 在讲排列与组合之前,我们先定义数据元素类型Fruit class Fruit{constructor(name,price){this.name namethis.price price} }排列 对N个不同元素进行排序,总共有多少不同的排列方式? Step1: 从N个元素中取1个,共N种…...
uniapp实现简单的九宫格抽奖(附源码)
效果展示 uniapp实现大转盘抽奖 实现步骤: 1.该页面可设置8个奖品,每个奖品可设置中奖机会的权重,如下chance越大,中奖概率越高(大于0) // 示例代码 prizeList: [{id: 1,image: "https://img.alicdn…...
C++设计模式_09_Abstract Factory 抽象工厂
与上篇介绍的Factory Method工厂方法模式一样,Abstract Factory 抽象工厂模式也属于典型的“对象创建模式”模式,解决的问题也极其相似,在理解了Factory Method工厂方法模式的基础上再去理解Abstract Factory 抽象工厂模式就会变得更加容易。…...
一些前端面试思考
回流和重绘 先牢记这句话,回流必将引起重绘,而重绘不一定会引起回流。回流的代价要远大于重绘。 当你给一个元素更换颜色,这样的行为是不会影响页面布局的,DOM树不会变化,但颜色变了,渲染树得重新渲染页面&…...
Spring MVC(上)
1、Spring MVC简介: MVC是一种软件架构的思想,将软件按照模型、视图、控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 JavaBean分为两类: 一类称为实体类Bean:专…...
ORACLE内存结构
内存体系结构 目录 内存体系结构 2.1自动内存管理 2.2自动SGA内存管理 2.3手动SGA内存管理 2.3.1数据库缓冲区 2.3.1.1保留池 2.3.1.2回收池 2.3.2共享池 2.3.2.1SQL查询结果和函数查询结果 2.3.2.2库缓存 2.3.2.3数据字典缓存 2.3.3大池 2.3.4 …...
excel常用的几个函数
1、MID函数 通常用来返回返回指定字符串中的子串。 函数公式: MID(string, starting_at, extract_length) String(必填):包含要提取字符的文本字符串 starting_at(必填):文本中要提取的第一个字…...
【Bug】【内存相关】偶然发现一个内存溢出Bug复盘
一、问题 跑自动化用例的时候,uat-sg环境,发现SGW经常会返回 502 Bad Gateway响应 二、原因 经过SRE和BE Dev共同排查,502 是从ALB-- > 后端服务 后端服务无法响应导致,ALB会直接给客户端返回502。 服务端:由于c…...
python读写.pptx文件
1、读取PPT import pptx pptpptx.Presentation(rC:\Users\user\Documents\\2.pptx) # ppt.save(rC:\Users\user\Documents\\1.pptx) # slideppt.slides.add_slide(ppt.slide_layouts[1])# 读取所有幻灯片上的文字 for slide in ppt.slides:for shape in slide.shapes:if shape…...
【Godot】【BUG】4.x NavigationAgent 导航不生效
4.2.beta2 试了半天才发现原来默认只对第一个有导航的 TileMap 的第 1 层 生效,而我设置的导航层不是第一层,然后我新建了一个 TileMap 将导航的瓦片设置到这个 TileMap 上了,如图 这样就解决了问题,不用再修改默认设置的东西了&a…...
Rust逆向学习 (1)
文章目录 Hello, Rust Reverse0x01. main函数定位0x02. main函数分析line 1line 2line 3line 4~9 0x03. IDA反汇编0x04. 总结 近年来,Rust语言的热度越来越高,很多人都对Rust优雅的代码和优秀的安全性赞不绝口。对于开发是如此,对于CTF也是如…...
【Golang | reflect】利用反射实现方法的调用
引言 go语言中,如果某个数据类型实现了一系列的方法,如何批量去执行呢,这时候就可以利用反射里的func (v Value) Call(in []Value) []Value 方法。 // Call calls the function v with the input arguments in. // For example, if len(in)…...
Teleport
从官网中获取到的代码如下 App.vue <template><div class"outer"><h3>Tooltips with Vue 3 Teleport</h3><div><MyModal /></div></div> </template> <script setup> import MyModal from "./My…...
flutter与原生 相互通信实战
一、原生和flutter 通信 ios 通信类 CommonUtil.swift import Foundation import Flutterpublic class CommonUtil {public static func emitEvent(channel: FlutterMethodChannel, method: String, type: String, errCode: Int32?, errMsg: String?, data: Any?){safeMa…...
结构光相机原理
结构光相机原理...
ubuntu安装Anaconda
下载 Anaconda 进入 Ubuntu,自己新建下载路径,输入以下命令开始下载 注意,如果不是 x86_64,需要去镜像看对应的版本(https://mirrors.bfsu.edu.cn/anaconda/archive/?CM&OA) wget https://mirrors.…...
【RNA structures】RNA转录的重构和前沿测序技术
文章目录 RNA转录重建1 先简单介绍一下测序相关技术2 Map to Genome Methods2.1 Step1 Mapping reads to the genome2.2 Step2 Deal with spliced reads2.3 Step 3 Resolve individual transcripts and their expression levels 3 Align-de-novo approaches3.1 Step 1: Generat…...
4、Kafka 消费者
5.1 Kafka 消费方式 5.2 Kafka 消费者工作流程 5.2.1 消费者总体工作流程 5.2.2 消费者组原理 Consumer Group(CG):消费者组,由多个consumer组成。形成一个消费者组的条件,是所有消费者的groupid相同。 • 消费者组内…...
CSS3 渐变
CSS3 渐变可以让你在两个或多个指定的颜色之间显示平稳的过渡。 CSS3渐变有两种类型:线性渐变(Linear Gradients)和径向渐变(Radial Gradients)。 线性渐变(Linear Gradients): 线性…...
TinyMCE 6.x 在Vue 3 + Vite项目中的完整配置与避坑指南(2024最新)
TinyMCE 6.x 在Vue 3 Vite项目中的完整配置与避坑指南(2024最新) 当Vue 3遇上Vite,前端开发体验迎来了质的飞跃。但在这个现代化工具链中集成TinyMCE 6.x这样的富文本编辑器时,很多开发者发现老教程已经不再适用。本文将带你从零…...
Xamarin跨平台开发实战:为仓储盘点APP集成东大PDA扫码模块
Xamarin跨平台开发实战:为仓储盘点APP集成东大PDA扫码模块 在仓储管理和物流盘点场景中,快速准确的条码扫描是提升工作效率的关键。传统手机摄像头扫码方案在工业级场景下往往力不从心——扫描速度慢、对焦困难、弱光环境表现差等问题频出。而专为工业环…...
CANoe系统变量与CAPL脚本实战:如何用几行代码实现自动化信号触发?
CANoe系统变量与CAPL脚本实战:如何用几行代码实现自动化信号触发? 在汽车电子测试领域,效率提升往往隐藏在那些看似简单的自动化逻辑中。想象这样一个场景:当车速超过80km/h时,自动触发紧急制动信号;当电池…...
Docker 27调度器深度解耦:从CPU亲和到拓扑感知,5步实现资源利用率提升42.6%
第一章:Docker 27调度器架构演进与解耦本质Docker 27 引入了全新的调度器内核,其核心设计目标是实现控制平面与执行平面的彻底解耦。这一演进并非简单功能叠加,而是通过抽象调度策略接口、分离资源感知层与任务分发层,将传统紧耦合…...
PLINK实战:用--indep-pairwise和R脚本搞定GWAS杂合率质控(附完整代码)
PLINK实战指南:GWAS杂合率质控全流程解析与代码实现 在基因组关联分析(GWAS)中,数据质量直接影响研究结果的可靠性。杂合率异常可能暗示样本污染或近亲繁殖等问题,而PLINK作为GWAS分析的瑞士军刀,配合R语言的数据处理能力…...
AI重塑工程实践:未来工程师必备能力图谱
技术演进背景 AI技术重塑工程实践范式:从自动化工具到决策辅助,工程师需掌握新能力维度。传统编码能力与系统设计经验仍为核心,但需叠加数据驱动思维与AI协同技能。 核心能力进化方向 数据感知力 理解数据生成逻辑与质量评估构建数据闭环…...
别只用来抓包了!Burp Suite的Filter、Comparer和Decoder模块,帮你高效分析漏洞与调试API
深度挖掘Burp Suite三大隐藏利器:Filter、Comparer与Decoder的高阶应用 Burp Suite作为安全测试领域的瑞士军刀,其核心模块Proxy和Intruder早已被广泛使用。但真正的高手往往更善于利用那些被多数人忽视的辅助模块——Filter、Comparer和Decoder。这些工…...
008、Agent的记忆机制:短期记忆与长期存储的实现
008、Agent的记忆机制:短期记忆与长期存储的实现 你的Agent是否总是“健忘”?对话超过几轮就忘了上下文,无法处理复杂任务?本文将为你彻底解决Agent的记忆难题,构建一个能“记住过去、规划未来”的智能体。 前言 在上一篇《让Agent学会“说话”:文本生成与对话输出实战》…...
保姆级教程:用宝塔面板+EMQX Cloud,零服务器搭建物联网数据中台(MQTT到MySQL)
零服务器架构实战:基于EMQX Cloud与宝塔面板的物联网数据中台搭建指南 物联网技术的普及让数据采集与分析变得触手可及,但对于资源有限的个人开发者或初创团队来说,传统服务器架构的高成本和运维复杂度仍是难以跨越的门槛。本文将介绍一种无需…...
MacBook M1/M2芯片上,用Python 3.10手动安装PyTorch全家桶的保姆级避坑指南
MacBook M1/M2芯片Python 3.10环境配置:PyTorch全家桶精准安装实战手册 当你在M1/M2芯片的MacBook上打开终端,输入那行看似简单的pip install torch命令时,系统报错的那一刻,可能就开启了一场令人头疼的依赖关系迷宫之旅。作为深…...
