文件操作和 IO - 3
目录
文件内容的读写 —— 数据流
InputStream 概述
方法:
说明:
FileInputStream 概述
read 方法:
OutputStream 概述
方法
说明
FileOutputStream 概述
write 方法:
Reader 字符流
Writer 字符流
总结:编辑
完
文件内容的读写 —— 数据流
流是操作系统提供的概念,C / Java 基于流再进行封装
举个栗子:
水流,生生不息,绵延不断
水流的特点:比如要 100ml 的水,可以一次接 10ml,分 10 次接完,也可以一次接 5ml,分 20 次接完,也可以一次接 100ml 一次接完........(此处我们接的方法有任意多种,但最终得到的效果是一样的)
文件流也是类似的情况:比如要读写 100 字节的数据,可以一次读写 10 字节,分 10 次。也可以一次读写 5 字节,分 20 次。也可以一次读写 1 字节,分 100 次读写完。也可以一次读写 100 字节,一次搞完............(此处读写的方式也 是任意多的情况,最终得到的效果也是一样的)
Java 标准库对于流进行了一系列的封装,提供了一系列的封装,提供了一组类来负责进行这些工作。针对这么多的类,大体可以分成两个类别
一:字节流: 以字节为单位进行读写,一次最少读写一个字节。
代表类: InputStream 输入 OutputStream 输出
二:字符流: 以字符为单位进行读写,比如,如果是 utf8 表示汉字,3 个字节就是一个汉字,每次读写都得以 3 个字节为单位(即以一个汉字为单位)来进行读写,不能一次读写半个汉字。
代表类: Reader 输入 Writer 输出
读写文件内容在各种编程语言中,都是“固定套路”~~~
1)打开文件 2)关闭文件 3)读文件 4)写文件
InputStream 概述
方法:
说明:
InputStream 只是一个抽象类,要使用还需要具体的实现类。关于 InputStream 的实现类有很多,基本可以认为不同的输入设备都可以对应一个 InputStream 类,我们现在只关心从文件中读取,所以使用 FileInputStream
这是源码中 InputStream 类的声明,abstract 表示的是这是一个抽象类。
有些类,我们不希望它能够创建出实例来。使用 abstract 来描述,编译器就可以进行更加严格的检查。所谓面向对象,就是通过代码抽象的表示实际事物的一种方式。
抽象这个词语本身理解起来就比较抽象,但这个词语又是计算机中比较常见的术语。
如何理解抽象呢? ==》 可以尝试理解抽象的反义词 ==》 形象 / (不抽象...)
如下图,这是以只具体的小猫~~~
具体的猫,信息量就能看到更多,比如说这个猫。品种是中华田园猫,毛色是黑白相间的,也称为是狸花猫,眼睛是棕色的,白色胡须长长的长在嘴巴附近....
抽象的小猫:
只具备猫的最基本特征,但无法得到更多的信息。
信息越多,就越具体。信息越少,就越抽象。
程序员写代码,很多时候,就是要用抽象的方式来表示具体的事物~~~
interface 和 abstract 之间的区别
FileInputStream 概述
构造方法:
示例 FileInputStream,从文件读取,创建对象的过程,就是打开文件的过程~~~
当我们实例化之后,发现需要抛出异常:
我们上面讲,在各种编程语言中,读写文件都是四部,即打开文件,关闭文件,读文件,写文件。现在,我们既然打开了文件,就要考虑关闭文件
关闭文件发现也需要抛出异常:
此时,类声明后面的 throws 直接是一个 IOException,其实,上面实例化抛出的异常 FileNotFoundException(文件不存在异常) 异常 是 IOException 的子类,即 FileNotException 也是一种特殊的 IOException~~~
关闭文件的操作,也可以理解成释放了文件的相关资源。
我们最初在计算机的组成中讲过,进程是一个或这多个 PCB 块组成的,PCB 块中有一个属性是 文件描述符表,记录了当前进程都打开了那些文件。用顺序表 / 数组存储,数组中的每个元素都是一个结构体,这个结构体就具体的描述了我们打开的文件在文件系统上的一些属性。每次打开一个文件,都是需要在文件描述符表中占据一个位置的,如果不关闭,一直打开的话,就会导致文件描述符表被耗尽(文件描述符表的长度是有上限的)。当文件描述符表被耗尽之后,后续再打开文件就会打开失败,进一步就会引起后续一些列的逻辑问题~~~
从而导致文件资源泄露,内存泄漏。
那 Java 中各种集合类,ArrayList 这种,满了都存在自动扩容机制呀,为啥文件描述表不能自动扩容呢??? ==》 会付出很大的代价。对于操作系统的内核来说,对于性能的要求是很高的,内核的任务很重,对于性能的要求也搞,如果要进行上述自动扩容的操作,要十分慎重~~~如果是因为扩容而引起了系统的卡顿,就得不偿失了~~~
由于 Java 提供了 GC(垃圾回收机制),我们就不太需要担心内存泄漏的问题,相当于是,我们的家里请了一个保洁阿姨,每隔一定周期就会帮我们收拾屋子,丢丢垃圾什么的,体验感会很好~~~
如果我们的 close 代码直接像上面这么写,很可能就执行不到~~~如果中间的其他逻辑出现了 return 或者出现抛出其他异常的情况,close 就无法执行到了~~~
我们可以想起用 finally 来确保 close 的一定执行。但又出现问题是,由于 inputStream 是在 try 的代码块中实例化,出了 try 块,finally 不认识 inputStream 了,我们需要在外面创建 InputStream,再在 try 块中实例化。代码如下:
Java 中,还对 try 操作提供了另外一个版本:即 try with resources:
注意:只有实现了 Closeable 接口的类,才能放到 try ( ) 里面。这样写之后,一旦代码出了 try 代码块,此时 try 会自动的帮我们调用 inputStream 的 close 方法~~~
read 方法:
第一个:无参数版本,每次调用读取一个字节,返回值就是读取到的这个字节的值,看起来是 int,实际上是 byte,实际的取值是 0 - 255,还有一个特殊情况是,如果读到了文件的末尾,继续 read,就会返回 -1。
第二个:一个参数版本,传入的是字节数组参数,是一个”输出行参数“,byte[ ] 是引用类型,方法内部针对数组内容进行修改,方法执行结束之后,方法外部也能生效~~~
上面两组代码的打印结果分别是几呢???
第一组的结果是 0。原因:func 函数中传入的 a,是形参,对函数的形参的修改,并不会改变函数实参的值,所以打印的结果仍然是实参的值 0
第二组的结果是 100。原因:方法内部是针对数组内容进行修改的,数组是引用类型,a[0] 解引用操作,方法执行结束之后,方法外部也能生效~~~
那这个代码段,执行后打印的结果是什么呢???
结果是 “”。原因:上述代码段执行的操作是引用赋值,并非是解引用,只是在方法内部把形参的引用指向了其他字符串了,而在方法外部的实参对象并没有被改变~~~
第三个:三个参数版本,大体和第二个版本一样,只是增添了开始和结束的位置~ off --> offset
注意:read 的第二个 第三个版本,返回的 int 表示的是实际读取到的字节个数。默认情况下,read 会尝试把数组填满,但是文件的实际剩余长度可能并不足以填满,所以返回值告诉我们实际是填充了多少个字节
代码示例:
打印结果:
因为我们是以 16 进制打印的,所以 abcde 分别对应 61 62 63 64 65
一个参数的版本:
buffer 也是计算机中的常见术语,表示“缓冲器”,往往是一个内存空间,读文件,就是把硬盘的数据读到内存中去。上面的写法,一次读若干个字节,要比一次读一个字节更加高效
操作硬盘,本身就是一个比较低效的操作,我们肯定更加期望的是,低效的操作,出现的次数越少越好,效率就会越高~~~
如果 test.txt 文件中是汉字的话,我们也可以基于字节数组构成 String。
代码示例:
注意:在 String s = new String(buffer, 0, n); 此处构造 String 是通过前 n 个字节构造,而不是整个数组,实际读取文件的内容可能不足 1024
OutputStream 概述
方法
说明
OutputStream 同样只是一个抽象类,使用还需要具体的实现类
FileOutputStream 概述
大致和 FileInputStream 类似~~~
write 方法:
第一个版本:一次写一个字节
第二个版本:一次写整个数组
第三个版本:一次写数组的一部分
代码示例:
97 -- 102 的对应的 a b c d e f 的 ASCII 码值,执行结果:
此处的 OutputStream,默认情况下,会把文件之前的内容全部清空掉,然后从头重新写!!!(并不是 write 方法操作引起的,而是打开操作引起的~~~)
写文件的时候,也不是说,必须要把文件内容情况,也可以使用追加写的方式,不清空文件内容,把新的内容写到文件末尾~~~ 此处的参数叫做 append 追加
执行结果:
Reader 字符流
Reader 字符流的使用方式和 InputStream 差不多
此处的 read 方法就是按照 char 为单位进行操作了
代码示例:
这个代码里面,还有一个关键问题,char 占几个字节??? ==》 2 字节。
但是如果 test.txt 中是中文,中文按照 utf8 编码,每个字符是 3 个字节,但是此处读取来的字符咋就成了 2 个字节呢???
下面的代码,其实是相当于把文件中的 utf8 在按照字符读取的时候,先转成 unicode,每个 char 里面存储的是对应的 unicode 的值。然后基于 unicode 最终再构造成 utf8 的 String(文件 utf8 => char[ ] unicode => String utf8 这个转换过程 Java 里面已经封装好了,没办法直接感知到~~~ )
Writer 字符流
Writer 字符流和 OutputStream 其实差不多~~~
代码示例:
总结:
补充: Scanner 也可以使用 Scanner 来辅助我们读取文件。Scanner(System.in) ==> 本质上就是一个 InputStream
完
相关文章:
文件操作和 IO - 3
目录 文件内容的读写 —— 数据流 InputStream 概述 方法: 说明: FileInputStream 概述 read 方法: OutputStream 概述 方法 说明 FileOutputStream 概述 write 方法: Reader 字符流 Writer 字符流 总结:…...
Kubernetes中的Label和Selector核心作用与应用场景
一. Label 和 Selector 的核心概念 Label 和 Selector 是 Kubernetes 中实现灵活资源管理的基石,贯穿部署、服务发现、监控等核心场景。通过合理设计标签,用户可以高效实现自动化运维与精准资源控制。 Label(标签): K…...
L1-6 大勾股定理
题目 大勾股定理是勾股定理的推广:对任何正整数 n 存在 2n1 个连续正整数,满足前 n1 个数的平方和等于后 n 个数的平方和。例如对于 n1 有 3^2 4^2 5^2 ;n2 有 10^2 11^2 12^2 13^2 14^2 等。给定 n,本题就请你找出对应的解。 输…...
esp32-idf Linux 环境安装教程
一、提前说明 1. 系统环境 Ubuntu22.04 2. 适配芯片 ESP32S3 3. idf版本 v5.4.1(截止2025年4月13日为最新版本) 二、安装步骤 1. 安装前置依赖 sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev l…...
关于使用 nuitka进行构建python应用的一些配置,以及github action自动构建;
1. 通用配置 # 设置输出目录和文件名output_dir "dist"app_name "CursorAutoFree"# 基础命令行选项base_options ["--follow-imports", # 跟踪导入"--enable-plugintk-inter", # 启用 Tkinter 支持"--include-packagecusto…...
C++开山解惑
. Solution & Code 本题解仅适用于 C 选手。 这道题可谓是 C 中最基础的题目之一,先上两份代码: #include <cstdio> using namespace std;int main() {long long a, b;scanf("%lld%lld", &a, &b);printf("%lld"…...
Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(二)
Pytorch深度学习框架60天进阶学习计划 - 第41天:生成对抗网络进阶(二) 7. 实现条件WGAN-GP # 训练条件WGAN-GP def train_conditional_wgan_gp():# 用于记录损失d_losses []g_losses []# 用于记录生成样本的多样性(通过类别分…...
路由策略/策略路由之route-policy
思科名称:route-map、match、set Route-policy 是一个非常重要的基础性策略工具。你可以把它想象成一个拥有多个节点(node)的列表(这些 node 按编号大小进行排序)。在每个节点中,可以定义条件语句及执行语…...
《嵌入式系统原理》一些题目
1 .ARM 的存储格式?默认的存储模式是? 大端格式和小端格式,默认为小端模式 2 .当前程序状态寄存器?(英文简写、条件码标志位及控制位的含义) CPSR,N,Z,C,V(P26) 3 &a…...
卡洛诗已悄然改写高性价比西餐的竞争规则
在餐饮行业竞争日益激烈的今天,消费者对“高性价比”的定义已从单纯的低价转向品质、体验与情感价值的综合考量。萨莉亚原团队成员出来升级孵化的新概念中式西餐卡洛诗以“访九州异馔,再造东方味”为核心理念,通过本土化创新、严控文化及场景…...
独立开发者之网站的robots.txt文件如何生成和添加
robots.txt是一个存放在网站根目录下的文本文件,用于告诉搜索引擎爬虫哪些页面可以抓取,哪些页面不可以抓取。下面我将详细介绍如何生成和添加robots.txt文件。 什么是robots.txt文件? robots.txt是遵循"机器人排除协议"(Robots…...
02核心-EffectSpec,EffectContext
1.FGameplayEffectSpec 效果Spec 创建:MakeOutGoingSpec>EffectSpecHandle≈EffectSpec. 创建总结:EffectLevelEffectContext>EffectSpec(Handle) 数据:EffectSpec存有效果的等级,上下文,类。 还有很多其他东…...
驱动开发硬核特训 · Day 10(下篇):设备模型实战篇 —— Platform 驱动机制 ≈ 运行时适配器
🔍 B站相应的视屏教程: 📌 内核:博文视频 - 总线驱动模型实战全解析 敬请关注,记得标为原始粉丝。 🔧 📍 一、目标与回顾 在上篇《理论篇》中,我们从软件工程角度,解释…...
集合框架二三事
一.集合框架 Java集合框架(Java Collections Framework)是Java标准库中用于存储和处理对象集合的一组接口和实现类。它提供了一套统一的API,使得开发者能够高效地管理和操作数据集合。以下是关于Java集合框架的详细介绍,包括其核…...
前端jest(vitest)单元测试快速手上
前言 vitest和jest除了配置上不同,其他的基本差不多,这里以jest为例进行说明 安装依赖 npm install -D jest编写测试 例如,我们将编写一个简单的测试来验证将两个数字相加的函数的输出。 sum.js export function sum(a, b) {return a b…...
优化方法介绍(二)
优化方法介绍(二) 本博客是一个系列博客,主要是介绍各种优化方法,使用 matlab 实现,包括方法介绍,公式推导和优化过程可视化 1 BFGS 方法介绍 BFGS 的其实就是一种改良后的牛顿法,因为计算二阶导数 Hessian 矩阵所需的计算资源是比较大的,复杂度为 O ( 2 ⋅ n 2 ) …...
Sklearn入门之datasets的基本用法
、 Sklearn全称:Scipy-toolkit Learn是 一个基于scipy实现的的开源机器学习库。它提供了大量的算法和工具,用于数据挖掘和数据分析,包括分类、回归、聚类等多种任务。本文我将带你了解并入门Sklearn下的datasets在机器学习中的基本用法。 获取方式 pi…...
UDS协议 - 应用层服务测试用例概览
目录 前言一、10服务物理寻址测试功能寻址测试二、11服务物理寻址测试功能寻址测试三、14服务物理寻址测试功能寻址测试四、19服务物理寻址测试功能寻址测试五、22服务物理寻址测试功能寻址测试六、27服务物理寻址测试七、28服务物理寻址测试功能寻址测试八、2E服务物理寻址测试…...
记录一个虚拟机分配资源的问题
Virtualize Intel VT - x/EPT or AMD - V/RVI:若物理机的 CPU 支持对应的硬件虚拟化技术(Intel VT - x 或 AMD - V),强烈建议开启。该功能可显著提升虚拟机的性能,让虚拟机更高效地利用物理 CPU 资源,改善卡…...
(即插即用模块-特征处理部分) 三十一、(2024) CDFA 对比度驱动的特征聚合模块
文章目录 1、Contrast-Driven Feature Aggregation module2、代码实现 paper:ConDSeg: A General Medical Image Segmentation Framework via Contrast-Driven Feature Enhancement Code:https://github.com/Mengqi-Lei/ConDSeg 1、Contrast-Driven Feat…...
机械革命 无界15X 自带的 有线网卡 YT6801 debian12下 的驱动方法
这网卡是国货啊。。。 而且人家发了驱动程序 Motorcomm Microelectronics. YT6801 Gigabit Ethernet Controller [1f0a:6801] 网卡YT6801在Linux环境中的安装方法 下载网址 yt6801-linux-driver-1.0.29.zip 我不知道别的系统是否按照说明安装就行了 但是debian12不行&…...
TypeScript 的 interface 接口
TypeScript 的 interface 接口 简介 interface 是对象的模板,可以看作是一种类型约定,中文译为“接口”。使用了某个模板的对象,就拥有了指定的类型结构。 interface Person {firstName: string;lastName: string;age: number;} 上面示例中…...
SpringBoot3-web开发笔记(下)
内容协商 实现:一套系统适配多端数据返回 多端内容适配: 1. 默认规则 SpringBoot 多端内容适配。 基于请求头内容协商:(默认开启) 客户端向服务端发送请求,携带HTTP标准的Accept请求头。 Accept: applica…...
关于无线网络安全的基础知识,涵盖常见威胁、防护措施和实用建议
无线网络(WiFi)的普及极大地方便了我们的生活,但其开放性也带来了诸多安全隐患。以下是关于无线网络安全的基础知识,涵盖常见威胁、防护措施和实用建议: 一、无线网络常见安全威胁 窃听(Eavesdropping) 攻击者通过监听无线信号,截获未加密的数据(如登录密码、聊天记录…...
《基于 RNN 的股票预测模型代码优化:从重塑到直接可视化》
在深度学习领域,使用循环神经网络(RNN)进行股票价格预测是一个常见且具有挑战性的任务。本文将围绕一段基于 RNN 的股票预测代码的改动前后差别展开,深入剖析代码的优化思路和效果。 原始代码思路与问题 原始代码实现了一个完整…...
【leetcode刷题日记】lc.347-前 K 个高频元素
目录 1.题目 2.代码 1.题目 给你一个整数数组 nums 和一个整数 k ,请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 示例 1: 输入: nums [1,1,1,2,2,3], k 2 输出: [1,2]示例 2: 输入: nums [1], k 1 输出: [1] 提示: 1 <…...
进程I·介绍、查看、创建与状态
目录 介绍 PCB(进程控制块) task_struct 查看、创建进程 进程状态 小知识 介绍 进程:PCB(process control block)(内核数据结构) 代码和数据 进程创建:操作系统将其相关属性信…...
[k8s]随笔- spec内容整理
面对 Kubernetes 中 spec 字段的复杂性,关键在于建立 层次化的分类逻辑 和 功能导向的归纳方法。以下是具体的规整思路和实践步骤,帮助你理清脉络、高效使用: 一、按资源类型分层:先分“大类”,再钻“细节” K8s 资源…...
程序化广告行业(81/89):行业术语解析与日常交流词汇指南
程序化广告行业(81/89):行业术语解析与日常交流词汇指南 在程序化广告这个不断发展的行业中,持续学习和知识共享是我们紧跟潮流、提升能力的关键。一直以来,我都希望能和大家一起探索这个领域,共同进步。今…...
层归一化(Layer Normalization) vs 批量归一化(Batch Normalization)
层归一化和批量归一化都是 归一化方法,目的是让训练更稳定、收敛更快,但应用场景和工作方式大不相同。 名称一句话解释BatchNorm对 同一通道、不同样本之间 做归一化,适合图像任务,依赖 Batch Size。LayerNorm对 每个样本自身所有特征维度 做归一化,适合序列任务,不依赖 …...
【杂谈】-开源 AI 的复兴:Llama 4 引领潮流
开源 AI 的复兴:Llama 4 引领潮流 文章目录 开源 AI 的复兴:Llama 4 引领潮流一、Llama 4:开源 AI 的挑战者二、真实利他还是战略布局?三、对开发者、企业和人工智能未来的启示 在过去的几年里,AI 领域发生了重大转变。…...
instructor 库实现缓存
目录 代码代码解释1. 基础设置2. 客户端初始化3. 数据模型定义4. 缓存设置5. 缓存装饰器6. 示例函数工作流程 示例类似例子 代码 import functools import inspect import instructor import diskcachefrom openai import OpenAI, AsyncOpenAI from pydantic import BaseModel…...
【日志链路】⭐️SpringBoot 整合 TraceId 日志链路追踪!
💥💥✈️✈️欢迎阅读本文章❤️❤️💥💥 🏆本篇文章阅读大约耗时6分钟。 ⛳️motto:不积跬步、无以千里 📋📋📋本文目录如下:🎁🎁&am…...
QT6 源(16):存储 QT 里元对象的类信息的类 QMetaClassInfo 的类,只有两个成员函数 name()、value(),比元对象属性简单多了
(1)所在头文件 qmetaobject.h : class Q_CORE_EXPORT QMetaClassInfo { private: //private 属性里包含了至关重要的数据成员的定义,放前面struct Data {enum { Size 2 };const uint * d; //包含了数组的起始地址uint name ()…...
deskflow使用教程:一个可以让两台电脑鼠标键盘截图剪贴板共同使用的开源项目
首先去开源网站下载:Release v1.21.2 deskflow/deskflow 两台电脑都要下载这个文件 下载好后直接打开找到你想要的exe desflow.exe 然后你打开他,将两台电脑的TLS都关掉 下面步骤两台电脑都要完成: 电脑点开edit-》preferences 把这个取…...
波束形成(BF)从算法仿真到工程源码实现-第六节-广义旁瓣消除算法(GSC)
一、概述 本节我们讨论广义旁瓣消除算法(GSC),包括原理分析及代码实现。 更多资料和代码可以进入https://t.zsxq.com/qgmoN ,同时欢迎大家提出宝贵的建议,以共同探讨学习。 二、原理分析 广义旁瓣消除(GSC)算法 GSC算法是与LCMV算法等效的&…...
企业数字化转型需要注重的深层维度:生成式AI时代的战略重构
企业数字化转型正在经历从"技术适配"到"基因重组"的质变。生成式AI技术的突破性发展,要求企业超越传统信息化框架,构建全新的数字化转型认知体系。本文将从战略认知、技术融合、组织进化、伦理治理、生态协作五个维度,系统解构企业数字化转型需注重的核…...
图论之并查集——含例题
目录 介绍 秩是什么 例子——快速入门 例题 使用路径压缩,不使用秩合并 使用路径压缩和秩合并 无向图和有向图 介绍 并查集是一种用于 处理不相交集合的合并与查询问题的数据结构。它主要涉及以下基本概念和操作: 基本概念: 集合&…...
解释型语言和编译型语言的区别
Python 的执行过程通常涉及字节码,而不是直接将代码编译为机器码。以下是详细的解释: ### **Python 的执行过程** 1. **源代码到字节码**: - Python 源代码(.py 文件)首先被编译为字节码(.pyc 文件&…...
零基础上手Python数据分析 (14):DataFrame 数据分组与聚合 - 玩转数据透视,从明细到洞察
写在前面 —— 像搭积木一样分析数据,掌握Pandas GroupBy,轻松实现分组统计与聚合 回顾一下,上篇博客我们学习了如何使用 Pandas 合并与连接多个 DataFrame,将分散的数据整合到一起。 现在,我们拥有了更完整、更丰富的数据视图。 接下来,一个非常常见的分析需求就是 对…...
Honor of Kings (S39) 13-win streak
Honor of Kings (S39) 13-win streak S39赛季13连胜,庄周,廉颇硬辅助,对面有回血就先出红莲斗盆,有遇到马克没带净化的,出【冰霜冲击】破他大招 S39,庄周廉颇前排硬辅助全肉全堆血13连胜_哔哩哔哩bilibi…...
输出流-----超级详细的在程序中向文件.txt中写入内容
1.使用Fileoutputstream对象,如果在目录中已经存在该文件,那么将不会在创建,如果该目录中没有该文件,那么将会自动创建文件。 2.在目录中a.txt文件中写入一个h字符,这种方式是写入单个字符。 //在目录中a.txt文件中写入…...
【Mysql】死锁问题详解
【Mysql】死锁问题详解 【一】Mysql中锁分类和加锁情况【1】按锁的粒度分类(1)全局锁(2)表级锁1、表共享读锁(Table Read Lock)2、表独占写锁(Table Write Lock)3、元数据锁…...
C语言实现用户管理系统
以下是一个简单的C语言用户管理系统示例,它实现了用户信息的添加、删除、修改和查询功能。代码中包含了详细的注释和解释,帮助你理解每个部分的作用。 #include <stdio.h> #include <stdlib.h> #include <string.h>#define MAX_USERS…...
SAP BDC:企业数据管理的新纪元
2025年4月,SAP在纽约发布了其全新企业数据平台——Business Data Cloud(BDC),标志着企业数据管理和AI集成战略的重大升级。BDC不仅整合了SAP内部和外部的结构化与非结构化数据,还借助与Databricks的合作,推…...
数学建模学习资料免费分享:历年赛题与优秀论文、算法课程、数学软件等
本文介绍并分享自己当初准备数学建模比赛时,收集的所有资料,包括历年赛题与论文、排版模板、算法讲解课程与书籍、评分标准、数学建模软件等各类资料。 最近,准备将自己在学习过程中,到处收集到的各类资料都整理一下,并…...
计算机的运算方式
1. 计算机运算的基本概念 计算机的运算由 算术逻辑单元(ALU) 执行,其核心功能是完成 算术运算 和 逻辑运算。所有运算均基于二进制编码,通过硬件电路实现高速计算。 运算对象:二进制数(定点数、浮点数&am…...
Tkinter事件与绑定
在Tkinter中,事件和事件绑定是实现用户交互的核心机制。通过事件机制,您可以捕捉用户的操作(例如鼠标点击、键盘输入等)并执行相应的回调函数。事件绑定是将事件与处理该事件的函数(或方法)关联起来。掌握事件和绑定技术是开发交互式应用程序的关键。 5.1 事件概述 事件…...
CAD 像素点显示图片——CAD二次开发 OpenCV实现
效果如下: 部分代码如下: public class Opencv1{[CommandMethod("xx1")]public void Opencv(){Document doc Application.DocumentManager.MdiActiveDocument;Database db doc.Database;Editor ed doc.Editor;// 设置采样精度,这…...
即梦+剪映:三国演义变中国好声音制作详解!
最近在刷抖音时,发现这种电影人物唱歌视频比较火热,今天手把手教大家如何制作这种让电影人物唱歌的视频! 一、素材准备 1、准备好视频或人物图片素材 这里需要准备一张人物截图或者电影视频片段,大家可以去各大视频网站找原始素…...