当前位置: 首页 > news >正文

文件IO——01

1. 认识文件

1)文件概念

“文件”是一个广义的概念,可以代表很多东西

操作系统里,会把很多的硬件设备和软件资源抽象成“文件”,统一管理

但是大部分情况下的文件,都是指硬盘的文件(文件相当于是对“硬盘”数据的一种抽象)

机械硬盘(HDD)适合顺序读取(磁头移动需要时间)

固态硬盘(SSD)内部是集成程度很高的芯片

2)目录

 一台计算机上有很多文件,这些文件是通过“文件系统”(操作系统提供的模块)来进行组织的

操作系统,使用“目录”(文件夹)这样的结构来组织文件

目录内部可能还包含其他的文件/目录

3)文件路径

可以通过文件路径,来确定当前文件具体所在的位置

1. 绝对路径:以 C: D: 盘开头

2. 相对路径:先指定一个目录作为基准目录,从基准目录出发,看沿着怎样的路径能找到指定的文件。一般以 . 或者 .. 开头( . 的情况可省略)

 .  当前目录

 ..  当前目录的上一级目录

如果是命令行进行操作,基准目录,就是当前所处的目录

如果是图形化界面的程序,基准目录就不好判断了

对于IDEA来说,基准目录,就是项目目录

4)文件类型

从编程的角度看:

1. 文本——文件中保存的数据,都是字符串,保存的内容,都是合法字符

2. 二进制——文件中保存的数据,仅仅是二进制数据,包要求保存的内容是合法字符

合法字符涉及字符集/字符编码

如 utf8:

有一个大的表格(码表),列出什么字符,对应到什么编码

如果文件是 utf8 编写的,此时文件的每个数据都是合法的 utf8 编码的字符 ——文本文件

如果存在一些不是 utf8 合法字符的情况——二进制

判断文件的类型——>

直接使用记事本打开这个文件,如果是乱码,文件就是二进制,否则就是文本

记事本就是尝试按照字符的方式来展示内容,这个过程会自动查码表

写代码时,文本文件和二进制文件的编码方式不同 

2. Java 中操作文件

1. 文件系统的操作:                                        File

创建文件,删除文件,判断文件是否存在,判断文件类型,重命名

2. 文件内容的操作:                                        流对象

读文件/写文件

1)File 概述(文件系统操作)

属性

修饰符积累性属性说明
static StringpathSeparator

依赖于系统的路径分隔符,

String 类型的表示

static charpathSeparator

依赖于系统的路径分隔符,

char 类型的表示

pathSeparator 是一个路径中用来分割目录的符号

Windows =>   \ 和 /

Linux =>         /

一般还是使用 / ,使用 \ 在代码中要搭配转义字符使用

构造方法

签名说明
File(File parent,String child)

根据父目录+孩子文件,

创建一个新的对象

File(String pathname)

根据文件路径创建一个新的实例,

路径可以是绝对路径或相对路径

File(String parent,Strinf child)

根据父目录+孩子文件路径创建实例,

父目录用路径表达式

1)一个File对象,就表示一个硬盘上的文件

在构造对象的时候,就需要把这个文件的路径指定进来(绝对路径/相对路径都可以)

2)文件名 = 前缀 + 扩展名

使用路径构造对象,一定要把前缀和扩展名都带上

方法

修饰符及返回值类型方法签名说明
StringgetParent()

返回File对象的父目录

文件路径

StringgetName()返回File对象的纯文件名称
StringgetPath()返回File对象的文件路径
StringgetAbsolutePath()返回File对象绝对路径的
StringgetCanonicalPath()

返回File对象的修饰过的

绝对路径

booleanexist()

返回File对象描述的文件是否

真实存在

booleanisDirectory()

返回File对象代表的文件是否是

一个目录

booleanisFile()

返回File对象代表的文件是否是

一个普通文件

booleancreateNewFile()

根据File对象,自动创建一个

空文件,创建成功后返回true

booleandelete()

根据File对象,删除该文件,

成功删除后返回true

voiddeleteOnExit()

根据 File 对象,标注文件将被删除,删除动作会到 JVM 运行结束时才会进行

String[]list()

返回File对象代表的目录下的

所有文件名

File[]listFile()

返回File对象代表的目录下的所有文件,以File对象表示

booleanmkdir()创建File对象代表的目录
booleanmkdirs()创建File对象代表的目录,如果必要,会创建中间目录
booleanrenameTo(File dest)进行文件(剪切,粘贴操作)
booleancanRead()判断用户是否对文件有可读的权限
booleancanWrite()判断用户是否对文件有可写的权限

Windows上的盘符不分大小写

getCanonicalPath()  针对绝对路径进行简化后得到的路径

对IDEA来说,基准目录就是项目所在的目录

绝对路径就是把当前的相对路径拼接到基准目录上

System.out.println(files);

打不出数组内容,是数组的哈希值

在JVM上层,Java代码中,没有任何办法获取到“内存地址”

要想拿到内存地址,只能靠native方法进入到JVM内部,通过C++代码获取到

System.out.println(Arrays.toString(files));

会打印出系统自带的特殊目录,不让用户感知到,防止被随意修改

2)文件内容的读写 —— 数据流

流对象(文件内容操作)

在标准库中,提供的读写文件的流对象(stream)有很多类,可以归结到两个大的类别中:

1. 字节流(对应二进制文件)

每次读/写的最小单位,是“字节”(8bit)

InputStream         OutputStream

2. 字符流 (对应文本文件)

每次读/写的最小单位,是“字符”(一个字符可能对应多个字节)

本质上是对字节流的又一层封装,把文件中几个相邻的字节,转换成一个字符(自动查字符集表)

Reader          Writer

GBK,一个中文字符集 => 两个字节

utf8,一个中文字符集 => 三个字节

输入/输出是站在CPU的角度上:       输出——>读         输入——>写

1. Reader 类

Reader 是抽象类,不能new实例,只能new子类                 标准库已经提供了现成的类

创建Reader对象的过程,就是”打开文件“的过程                  文件不存在就就会打开失败

1. 无参数 read:一次读取一个字符

2. 一个参数 read:一次读取若干个字符,会把参数指定的 cbuf 数组给填充满

4. 三个参数 read :一次读取若干个字符,会把参数中的 cbuf 数组,从off位置开始,到len的范围尽量填满

1)把这个 cbuf 空数组(不是null,没有实际意义的数组)尽量填满

2)使用 close 方法,是为了释放文件描述符(PCB)——>

顺序表(数组)

进程每次打开文件,都需要在这个表里分配一个元素,这个数组的长度是存在上限的

当数组占满后再尝试打开文件,会触发文件资源泄露(类似内存泄漏)

3)read 返回值是 int 表示读取的字符数,若文件读完了,返回 -1

reader.close();

该方法可能会执行不到,如果程序出现逻辑错误,会报异常终止程序,调用不到 close

可以使用

try{}finally{reader.close();
}                                      //但过于繁琐,不够优美

try{

}                                                                    // try with resources

 () 中定义的变量,会在 try 代码结束的时候(正常结束,还是抛出异常),自动调用其中的 close 方法

要求写到 () 里的对象必须实现 Closeable 借口 ——流对象都可以这么写

 

在Java标准库内部,对于字符编码做了很多的处理:

1)只使用char,此时使用的字符集固定是 unicode

若使用String,此时会自动把每个字符的 Unicode 转换成 utf8

2)char[] c 包含的每个字符都是 unicode 编码的

String s = new String(c); 一旦使用这个字符数组构成String,就会在内部把每个字符都转换成 utf8 ,可配置

s.charAt(i) 也会把对应的 utf8 的数据,转换成 unicode

3)把多个 unicode 联系放到一起,难以区分从哪到哪是一个完整的字符

utf8 可以做到区分

可以认为 utf8 是针对连续多个字符进行传输时的一种改进方案

2. Write 类

1. 一次写一个字符

2. 一次写一个字符串

3. 一次写多个字符(字符数组)

4,5. offset 是从数组/字符串中的第几个字符开始写 

Write 写入文件,默认情况下会把原文件的内容清空掉

若不想清空,需要在构造方法中添加一个参数

此时回见内容写到原有文件的末尾

3. OutputStream类

和 Write 类似, OutputStream 打开一个文件,默认会清空文件的原有内容

写入的数据,会成为文件中的新数据

若不想清空,可以使用追加写的方式(在构造方法中,第二个参数传入 true )

此处已经写入了字符串,但在文件中却未写入

缓冲区

PrintWriter 这样的类,在进行写入的时候,不一定是直接写硬盘,而是先把数据写入到一个内存构成的“缓冲区”中(buffer) ——引入缓冲区是为了提高效率,减少读硬盘的次数

当写入缓冲区后,如果还没来及将缓冲区的数据写入硬盘,进程就结束了,此时数据就丢了

有时候需要手动使用 flush 方法将数据写入硬盘 ——刷新缓冲区

 

4. InputStream类

以上是将文件中的数据全部读完的两种方式,前者的IO次数更少,性能更好

Scanner 进行字符读取
Scanner(InputStream is, String charset)          使用 charset 字符集进行 is 的扫描读取

文件练习

扫描指定目录,找到名称中包含指定字符的所有普通文件(不包含目录),并且后续询问用户是否要删除该文件

1)list 列出目录内容

2)判断文件类型

3)删除文件

找到目录中的所有文件,以及子目录中的所有文件,只要遇到子目录就往里找

可以使用“递归”的方式,把所有的子目录都扫描一遍

 

 

相关文章:

文件IO——01

1. 认识文件 1)文件概念 “文件”是一个广义的概念,可以代表很多东西 操作系统里,会把很多的硬件设备和软件资源抽象成“文件”,统一管理 但是大部分情况下的文件,都是指硬盘的文件(文件相当于是对“硬…...

23种设计模式之装饰模式

目录 1. 简介2. 代码2.1 ABatterCake (抽象组件)2.2 BatterCake (具体组件)2.3 ADecorator (抽象装饰者)2.4 EggDecorator (具体装饰者)2.5 SausageDecorator(具体装饰者…...

Ubuntu22.04系统源码编译OpenCV 4.10.0(包含opencv_contrib)

因项目需要使用不同版本的OpenCV,而本地的Ubuntu22.04系统装了ROS2自带OpenCV 4.5.4的版本,于是编译一个OpenCV 4.10.0(带opencv_contrib)版本,给特定的项目使用,这就不用换个设备后重新安装OpenCV 了&…...

《OpenCV:视觉世界的魔法钥匙》

《OpenCV:视觉世界的魔法钥匙》 一、OpenCV 是什么1. 起源与发展支持2. 特点与优势3. 编程语言支持 二、OpenCV 的发展历程1. 重要版本发布时间线2. 版本更新内容 三、OpenCV 的主要功能1. 图像处理2. 特征提取3. 目标检测4. 运动分析5. 人脸识别6. 其他功能 四、Op…...

Day7 苍穹外卖项目 缓存菜品、SpringCache框架、缓存套餐、添加购物车、查看购物车、清空购物车

目录 1.缓存菜品 1.1 问题说明 1.2 实现思路 1.3 代码开发 1.3.1 加入缓存 1.3.2 清除缓存 1.3.2.1 新增菜品优化 1.3.2.2 菜品批量删除优化 1.3.2.3 修改菜品优化 1.3.2.4 菜品起售停售优化 1.4 功能测试 1.4.1 加入缓存 1.4.2 菜品修改 1.5 代码提交 2.缓存套餐 2.1 Spring C…...

华为路由策略和策略路由学习笔记

控制网络流量可达性 思考:如何控制网络流量可达性? 解决方案一:可通过修改路由条目(即对接收和发布的路由进行过滤)来控制流量可达性,这种方式称为路由策略。 解决方案二:可直接通过依据用户制定的策略进行转发,且该策略优于路由…...

网上图书购物管理系统|Java|SSM|VUE| 前后端分离

【一】可以提供远程部署安装,包扩环境 【二】提供软件相关的安装包 【三】如果需要提供java入门资料可咨询 【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、M…...

杂发单的单据类型一个参数的逻辑

【核准中可改】被产线滥用了。它们可以这样做,开立一张杂发单,打印出来交领导层签名。单据要交财务做核算的。然后去修改杂发单的材料。以为可以瞒天过海。2个仓库,一个中掉坑里,一个发现了它们的拙劣的手段,上报之后没…...

AUTOSAR CP中基于通信模块(COM)的Transformer-R24的规范导读

该文档是关于 AUTOSAR CP中基于通信模块(COM)的Transformer的规范说明,主要内容包括引言、相关文档、约束与假设、功能规范、API 规范、配置规范等,旨在为汽车电子系统开发中基于 COM 的Transformer提供全面的技术规范和指导。 一…...

yarn : 无法加载文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁

关于执行安装yarn命令后执行yarn -v报错: 先确认执行安装yarn命令是否有误 # 安装yarn npm install yarn -g 终端输入set-ExecutionPolicy RemoteSigned 当然如果yarn -v仍然执行失败,考虑使用管理员方式运行IDEA, 注:如上操作…...

证明直纹面是可展曲面沿着直母线,曲面的切平面不变

目录 证明直纹面是可展曲面的当且仅当沿着直母线,曲面的切平面不变 证明直纹面是可展曲面的当且仅当沿着直母线,曲面的切平面不变 直纹面是可展曲面当且仅当沿着直母线,曲面的切平面不变. 证明:设直纹面 S S S的参数式为 r ( u …...

一种将png图像批量转换为RGB格式的方法

1.前言 大家在做2D图像分类的时候,代码经常要求图像是RGB格式。有时候我们的图像并不是RGB,尤其是处理病理图像切分的pach的时候,这时候就需要批量进行格式转换了。好了,直接上代码: import os from PIL import Image…...

Python 中的继承机制是什么样的?

Python的继承机制允许一个类(子类)继承另一个类(父类或基类)的属性和方法。 通过继承,可以实现代码复用,同时也能让代码结构更加清晰、易于维护。 Python支持单继承和多继承,并且有丰富的特性…...

MyBatis注解开发(一)

目录 使用注解完成CRUD 1. SqlMapConfig.xml配置文件 2. UserDao接口方法和注解的编写 3. UserTest测试方法的编写 注解方式比较简单,但是实际开发不推荐使用注解,使用配置文件的方式,不需要改源代码。 Insert:添加 Update:修改 Delete:删…...

挑战用React封装100个组件【010】

Hello,大家好,今天我挑战的组件是这样的! 今天这个组件是一个打卡成功,或者获得徽章后的组件。点击按钮后,会弹出礼花。项目中的勋章是我通过AI生成的,还是很厉害的哈!稍微抠图直接使用。最后面…...

深入浅出:Go语言中的错误处理

深入浅出:Go语言中的错误处理 引言 在任何编程语言中,错误处理都是一个至关重要的方面。它不仅影响程序的稳定性和可靠性,还决定了用户体验的质量。Go语言以其简洁明了的语法和强大的并发模型而著称,但其错误处理机制同样值得关…...

Spire.doc 合并word,复制word

之前使用的poi来实现这个功能&#xff0c;然后发现在复制chart时&#xff0c;边框样式无法修改&#xff0c;于是就使用了spire.doc 1. 引入依赖 <repositories><repository><id>com.e-iceblue</id><name>e-iceblue</name><url>https…...

《Java核心技术I》线程局部变量

线程局部变量 ThreadLocal辅助类为各个线程提供各自的实例。 public static final THreadLocal dateFormat ThreadLocal.withInitial(()->new SimpleDateFormat("yyyy-MM-dd")); 要访问具体的格式化方法&#xff0c;可以调用&#xff1a; String dateStamp d…...

C++实现排序算法:冒泡排序

目录 前言 冒泡排序性质 C代码实现冒泡排序 冒泡图解 第一趟排序 第二趟排序 第三趟排序 排序结果 结语 前言 冒泡排序的基本思想是通过从前往后&#xff08;从后往前&#xff09;两两比较&#xff0c;若为逆序&#xff08;即arr[i] < arr[i 1]&#xff09;则交换…...

智慧银行反欺诈大数据管控平台方案(八)

智慧银行反欺诈大数据管控平台的核心理念&#xff0c;在于通过整合先进的大数据技术、算法模型和人工智能技术&#xff0c;构建一个全面、智能、动态的反欺诈管理框架&#xff0c;以实现对金融交易的全方位监控、欺诈行为的精准识别和高效处理。这一理念强调数据驱动决策&#…...

阿里云通义千问:全面解析智能云服务先锋

一、技术架构与基础 模型构建基石 采用大规模语料库训练&#xff0c;涵盖多领域知识&#xff0c;如科学、历史、文学等&#xff0c;确保知识储备丰富多样。运用先进的神经网络架构&#xff0c;深度优化模型结构&#xff0c;提高信息处理效率与准确性。持续的语料更新机制&…...

Qt 设置QLineEdit控件placeholderText颜色

Qt 会根据QLineEdit控件显示文本的颜色自动设置placeholderText颜色&#xff0c;如果想自定义placeholderText颜色&#xff0c;可以通过以下方法。 在样式文件中增加以下设置&#xff1a; QLineEdit#lineEdit_userName, QLineEdit#lineEdit_password{border: none;padding: 6…...

opencv光流法推测物体的运动

光流法是计算机视觉中的一种技术&#xff0c;用于估计图像中相邻帧之间的像素位移或运动。它是一种用于追踪图像中物体运动的技术&#xff0c;可以在视频中检测并测量物体的运动轨迹。基本上&#xff0c;光流意味着计算像素的移动向量作为物体在两个相邻图像之间的位移差。光流…...

Vue指令(一)--v-html、v-show、v-if、v-else、v-else-if、v-on、v-bind、v-for、v-model

目录 &#xff08;一&#xff09;初识指令和内容渲染指令v-html 1.v-html 案例&#xff1a; 官网的API文档 &#xff08;二&#xff09;条件渲染指令v-show和v-if 1. v-show 2. v-if &#xff08;三&#xff09;条件渲染指令v-else和v-else-if 案例 &#xff08;四…...

Elixir GenServer

GenServer 是一个用来实现客户端-服务器模式中服务器的行为模块。 GenServer 是一个普通的 Elixir 进程&#xff0c;同其他 Elixir 进程一样&#xff0c;它可以用来保存状态、异步执行代码等。使用这个模块来实现通用服务器进程&#xff08;GenServer&#xff09;的优势在于&a…...

第八节、Bresenham直线插补【51单片机-TB6600驱动器-步进电机教程】

摘要&#xff1a;前面章节主要介绍单个电机控制&#xff0c;本节内容介绍两个电机完成直线插补运动 一、 Bresenham直线算法介绍 Bresenham直线算法由Jack Elton Bresenham于1962年在IBM开发&#xff0c;最初用于计算机显示直线&#xff0c;它确定应该选择的n维光栅的点&#…...

JDK1.8

JDK1.8 1. Lamdba表达式 Lambda表达式是什么&#xff1f; Lambda是一个匿名函数&#xff0c;我们可以将Lambda表达式理解为一段可以传递的代码&#xff08;将代码像数据一样传递&#xff09;。使用它可以写出简洁、灵活的代码。作为一种更紧凑的代码风格&#xff0c;使java语…...

【jvm】讲讲jvm中的gc

目录 1. 说明2. 主要算法2.1 标记-清除算法2.2 复制算法2.3 标记-整理算法3. 主要回收器3.1 Serial GC3.2 Parallel GC3.3 CMS&#xff08;Concurrent Mark-Sweep&#xff09;GC3.4 G1&#xff08;Garbage-First&#xff09;GC 4. 触发条件4.1 Minor GC&#xff08;Young GC&am…...

Oracle 用户管理模式下的恢复案例-不完全恢复

1. 不完全恢复的几种常用方法 01. recover database using backup controlfile 如果丢失当前控制文件&#xff0c;用冷备份的控制文件恢复的时候&#xff0c;用来告诉 oracle&#xff0c;不要以 controlfile 中的 scn 作为恢复的终点&#xff1b; 02. recover database until …...

Leetcode经典题4--查找数组中的多数元素+Boyer-Moore 投票算法

题目描述&#xff1a; 给定一个大小为 n 的数组 nums &#xff0c;返回其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的&#xff0c;并且给定的数组总是存在多数元素。 输入输出示例 输入&#xff1a;nums [2,2,1,1,1,2,2] 输出…...

ubuntu20.04 如何使用 perf 性能分析工具 以及 hotspot 性能分析可视化工具?

官方文档&#xff1a;https://perfwiki.github.io/main/ 如何安装&#xff1a;https://askubuntu.com/questions/50145/how-to-install-perf-monitoring-tool 首先是安装 perf: sudo apt-get install linux-tools-common sudo apt-get install linux-tools-generic sudo apt-…...

Scala-隐式转换

系统自动完成的&#xff1a;把一种类型的数据转成了另一种类型的数据。 不是所有的类型都可以执行隐式转换 函数的参数类型 和 返回值类型是重要的&#xff0c;它约定了把什么类型转成什么类型 //张三的函数def getAge():Double{8.5}//函数名&#xff1a;tranform 不重要//函…...

基于Java和Vue开发的漫画阅读软件漫画阅读小程序漫画APP

前景分析 受众广泛&#xff1a;漫画的受众群体广泛&#xff0c;不仅限于青少年&#xff0c;还涵盖了成年人等多个年龄层和社会阶层。漫画文化在全球范围内的影响力不断扩大&#xff0c;未来漫画软件创业可以考虑全球市场的拓展。 市场需求大&#xff1a;数字化阅读趋势下&…...

租赁小程序的优势与应用场景解析

内容概要 租赁小程序&#xff0c;听起来是不是很酷&#xff1f;其实&#xff0c;它就是一个让你可以方便地租借各种高成本但用得不频繁的商品的平台。想象一下&#xff0c;当你需要租一件派对用的华丽小礼服&#xff0c;或是想体验一下超酷的运动器材&#xff0c;租赁小程序就…...

CC-Link IEFB转Modbus TCP协议网关(技术分享)

一&#xff0c;设备主要功能 捷米特JM-CCLKIE-TCP网关实现连接到CC-Link IE Field Basic总线中做为从站使用&#xff0c;连接到Modbus TCP总线中做为主站或从站使用。 应用广泛&#xff1a;捷米特JM-CCLKIE-TCP广泛应用于支持Modbus TCP接口的上位机、变频器、仪表、马保等等…...

开发手札:Win+Mac下工程多开联调

最近完成一个Windows/Android/IOS三端多人网络协同项目V1.0版本&#xff0c;进入测试流程了。为了方便自测&#xff0c;需要用unity将一个工程打开多次&#xff0c;分别是Win/IOS/Android版本&#xff0c;进行多角色联调。 在Win开发机上&#xff0c;以Windows版本为主版…...

SSM报错:表现层方法应该返回字符串,但是返回页面

在进行SSM项目时&#xff0c;后端表现层应该返回给前端字符串&#xff0c;但是却跳转页面 1.首先检查是否使用ResponseBody注解 ResponseBody注解 作用&#xff1a;将java对象转为json格式的数据。将controller的方法返回的对象通过适当的转换器转换为指定的格式之后&#xff0…...

Unity中使用Sqlite存储本地数据

sqlite-net sqlite下载页 我的环境&#xff1a;win11、unity团结1.3.4 1.下载sqlite-net&#xff0c;将SQLite.cs脚本导入Unity 2.下载各平台依赖项&#xff0c;如dll、aar等。导入Unity并设置 3.简单列子&#xff0c;打包测试 using System; using System.IO; using SQLi…...

微信直连:商户转账到零钱API开发报错:java.security.InvalidKeyException: Illegal key size

jdk版本 解决方案&#xff1a;下载jce_policy-8&#xff0c;替换jre下的 local_policy.jar 文件 替换jdk内的jre下的 替换jre下的 JDK 8u161 之后默认使用了不限制的Policy...

语言处理程序基础

逻辑运算 正规式 有限自动机 上下文无关文法 表达式&#xff08;前缀、后缀、中缀&#xff09; 将表达式&#xff08;a-b&#xff09;*&#xff08;c5&#xff09;构造成树的步骤为&#xff1a;括号不能出现在树中&#xff1b;按照表达式的计算顺序来依次构造&#xff01;&…...

deepsort复现报错TypeError: tuple indices must be integers or slices, not tuple 解决

deepsort复现中遇到的TypeError: tuple indices must be integers or slices, not tuple问题的解决-CSDN博客 以上为参考教程。 复现的时候出现这个报错&#xff0c;搞了好久试了好多方法&#xff0c;包括降 scikit-learn版本&#xff0c;都不行&#xff0c;最后终于找到这个博…...

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用&#xff0c;支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…...

MSSQL SQLi Labs靶场 第一关 (手工版)

一.判断是否存在注入 输入http://172.16.0.87/less-1.asp?id1页面异常 加上闭合点&#xff1a;http://172.16.0.87/less-1.asp?id1--页面正常&#xff0c;说明存在注入 二.判断数据库类型 可通过以下Payload来探测当前站点是否是MSSQL数据库&#xff0c;正常执⾏说明后台数据…...

重磅更新:CnosDB 2.3.5.4 版本上线, 性能提升,问题修复一网打尽

&#x1f4e2; 重磅更新&#xff1a;CnosDB 2.3.5.4 版本上线, 性能提升&#xff0c;问题修复一网打尽 &#x1f4e2; 我们很高兴地向大家介绍最新版本的更新&#xff0c;以下是本次更新的主要内容&#xff1a; &#x1f539; 版本号&#xff1a;2.3.5.4 &#x1f539; 发布…...

后端-编辑按钮的实现

编辑一共要实现两步&#xff1a; 1.点击编辑蹦出来一个弹窗&#xff0c;此时需要回显&#xff0c;根据id查出来这条数据 2.修改某些值之后点击保存的时候调用修改的接口 根据id查询的时候正常操作 修改值的时候要注意一些问题 mapper层的Employee和impl层的接收实体不一样...

Python语言基础入门教程

Python是一种简单易学、功能强大的编程语言&#xff0c;非常适合初学者入门。本篇博客将带你从零开始&#xff0c;学习Python的一些基础知识&#xff0c;并通过详细分析和实例帮助你理解。 一、什么是Python&#xff1f; Python是一种高级编程语言&#xff0c;具有以下特点&am…...

verilog编程规范

verilog编程规范 文章目录 verilog编程规范前言一、代码划分二、verilog编码ABCDEFG 前言 高内聚&#xff0c;低耦合&#xff0c;干净清爽的代码 一、代码划分 高内聚&#xff1a; 一个功能一个模块干净的接口提取公共的代码 低耦合&#xff1a; 模块之间低耦合尽量用少量…...

Spring Boot 的启动原理

Spring Boot 是由 Pivotal 团队发布的一个开源框架&#xff0c;它基于 Spring 框架&#xff0c;旨在简化企业级应用程序的开发过程。与传统的 Spring 项目相比&#xff0c;Spring Boot 提供了一种更加简洁、高效的方式来构建和部署应用程序。其核心理念是“约定优于配置”和“自…...

Oracle 19C RU补丁升级,从19.7to19.25 -单机

1. 环境信息&#xff1a; 角色 数据库 IP地址 数据库版本 数据库名称 源端 单实例 172.30.21.191 19.7 hfzcdb 2. 安装准备 用rman备份数据库&#xff0c;再备份下oracle目录&#xff1a; 命令&#xff1a; tar zavf oracle.tar /oracle 19.25版本关于19C的补丁内…...

Web day08 项目实战(2)

目录 查询员工&#xff1a; 在EmpController层&#xff1a; 在pojo层&#xff1a; 在EmpServiceImpl 层中&#xff1a; 在dao层&#xff1a; 新增员工: pojo层&#xff1a; EmpController层&#xff1a; 在EmpServiceImpl 层中&#xff1a; 在EmpMapper层&#xff1a; …...