java的文件输入输出流(FileInputStream、FileOutputStream、FileReader、FileWriter)
文章目录
- 文件输入输出流
- 1 java I/O 流的原理
- 流的分类
- 2 FileInputStream 文件字节输入流
- 3 FileOutputStream 文件字节输出流
- 4 使用文件字节输入输出流完成对文件的拷贝
- 5 FileReader 文件字符输入流
- 6 FileWriter 文件字符输出流
文件输入输出流
1 java I/O 流的原理
-
I/O
是Input/Output
的缩写,I/O
技术是非常实用的技术,用于处理数据传输,如读写文件、网络通讯等。 -
在
java
程序中,对于各种数据的输入/输出操作以 “流(Stream
)” 的方式进行。 -
java.io
包下提供了各种 “流” 类和接口,用以获取不同种类的数据,并通过方法输入或输出数据。 -
输入
input 、reader
:读取外部数据到程序中。外部 --> 程序
-
输出
output、writer
:将程序中的数据输出到外部。程序 --> 外部
流的分类
流主要按如下三种方式进行分类:
- 按操作数据单位的不同分为:字节流(8 bit)二进制文件,字符流(按字符)文本文件
- 按数据流的流向不同分为:输入流、输出流
- 按流的角色不同分为:节点流、处理流(包装流)
流的基类(超类/父类):
抽象基类 | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream | Reader |
输出流 | OutputStream | Writer |
- java的 IO 流涉及 40 多个类,实际上是有一定规则的,都是由上面的 4 个抽象基类派生的。
- 由这 4 个类派生出来的子类名称都是以其父类名作为子类后缀。
2 FileInputStream 文件字节输入流
FileInputStream
类继承、实现关系如下图:
案例讲解: 将 first.txt
文件的内容读取到程序中,并输出在控制台。
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;public class FileInputStream_ {public static void main(String[] args) {String s = "d:\\0\\fist.txt";File path = new File(s);FileInputStream fileInputStream = null;int readDateLen = 0;byte[] buf = new byte[8];try {fileInputStream = new FileInputStream(path);//当 readDateLen = -1 时文件已经读完了while((readDateLen = fileInputStream.read(buf)) != -1) {//read(buf)读取的内容不能总是能装满整个数组//所以必须使用new String(buf, 0, readDateLen)//因为,每次读取的数据都会在buf数组中从头开始覆盖System.out.print(new String(buf, 0, readDateLen));}} catch (IOException e) {e.printStackTrace();} finally {try {//关闭流fileInputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}
解读:
-
创建
FileInputStream
对象,常用的2种方法:-
new FileInputStream(File file)
-
new FileInputStream(String name)
其中
name
为文件的路径,如d:\\0\\fist.txt
-
-
FileInputStream
的read()
方法public int read() throws
- 从此输入流中读取一个字节的数据。如果尚无可用输入,则此方法会阻塞。
- 返回值:下一个数据字节,如果到达文件末尾则为
-1
。
public int read(byte[] b)
- 从此输入流中读取最多
b.length
字节的数据到字节数组中。在某些输入可用之前,此方法会阻塞。 - 返回值:读入缓冲区的总字节数,如果因为已到达文件末尾而没有更多数据,则为
-1
。
- 从此输入流中读取最多
public int read(byte[] b, int off, int len)
- 从此输入流中读取最多
len
字节的数据到字节数组中,off
为数组 b 中的起始下标,如果len
不为零,则该方法会阻塞,直到某些输入可用;否则,不读取任何字节并返回0
。 - 返回值:读入缓冲区的总字节数,如果因为已到达文件末尾而没有更多数据,则为
-1
。
- 从此输入流中读取最多
3 FileOutputStream 文件字节输出流
FileOutputStream
类的继承、实现关系如下图:
案例讲解: 输出内容到 "d://0//second.txt"
文件中。
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class FileOutputStream_ {public static void main(String[] args) {String path = "d://0//second.txt";FileOutputStream fileOutputStream = null;try {fileOutputStream = new FileOutputStream(path, true);fileOutputStream.write('X');String str = "necessity";fileOutputStream.write(str.getBytes());fileOutputStream.write('h');fileOutputStream.write(str.getBytes(), 0, 3);} catch (IOException e) {throw new RuntimeException(e);} finally {try {fileOutputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}
解读:
-
用
FileOutputStream
将数据写到文件中, 如果该文件不存在,则自动创建该文件。上面的例子中,如果
second.txt
文件不存在,则会自动创建。 -
new FileOutputStream(String name, boolean append)
append
- 如果是true
,则字节将写入文件末尾而不是开头- 如果没有指定
append
默认为false
,即每次使用一个新的流写入文件时,写入的内容会覆盖原有的内容。
-
str.getBytes()
可以把 字符串-> 字节数组 -
FileOutputStream
类的write()
方法-
public void write(int b)
- 将指定字节写入此文件输出流。实现
OutputStream
的write
方法。
- 将指定字节写入此文件输出流。实现
-
public void write(byte[] b)
- 将指定字节数组中的
b.length
个字节写入此文件输出流。
- 将指定字节数组中的
-
public void write(byte[] b, int off, int len)
- 从数组
b
中下标为 off 的数据开始,读取len
个元素,写入此文件输出流。
- 从数组
-
4 使用文件字节输入输出流完成对文件的拷贝
案例: 使用 FileInputStream
和 FileOutputStream
实现对 1.png
图片的复制.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class FileCopy {public static void main(String[] args) {FileInputStream fileInputStream = null;FileOutputStream fileoutputStream = null;try {fileInputStream = new FileInputStream("d:\\0\\1.png");fileoutputStream = new FileOutputStream("d:\\0\\2.png");//一次读取1024个字节byte[] buf = new byte[1024];int readLen = 0;while((readLen = fileInputStream.read(buf)) != -1) {//read(buf)读取的内容不能总是能装满整个数组//所以必须使用write(buf, 0, readLen)//因为,每次读取的数据都会在buf数组中从头开始覆盖fileoutputStream.write(buf, 0, readLen);}} catch (IOException e) {throw new RuntimeException(e);} finally {try {//关闭输入流和输出流,释放资源if(fileInputStream != null)fileInputStream.close();if (fileoutputStream != null)fileoutputStream.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}
5 FileReader 文件字符输入流
FileReader
类的继承、实现关系如下图:
基本介绍:
- 构造方法:
new FileReader(String fileName)
new FileReader(File file)
new FileReader(String FileName, Charset charset)
charset
:要指定的编码方式,例如 “utf-8”、“gbk”等
new FileReader(File file, Charset charset)
charset
:要指定的编码方式,例如 “utf-8”、“gbk”等
-
int read()
方法:每次读取单个字符,返回该字符,如果到文件末尾则返回 -1 -
int read(char[])
:批量读取多个字符到数组,返回读取到的字符数,如果到文件末尾则返回 -1 -
相关的 API:
-
new String(char[])
将
char[]
转换成String
-
new String(char[], off, len)
将
char[]
中,下标从off
开始,接下来的len
个字符转换成String
-
案例讲解:
import java.io.FileReader;
import java.io.IOException;public class FileReader_ {public static void main(String[] args) {FileReader fileReader = null;int readData = 0;int readLen = 0;//一次读取10个字符char[] buf = new char[10];try {fileReader = new FileReader("d:\\0\\fist.txt");while((readLen = fileReader.read(buf)) != -1) {//read(buf)读取的内容不能总是能装满整个数组//所以必须使用new String(buf, 0, readLen//因为,每次读取的数据都会在buf数组中从头开始覆盖System.out.print(new String(buf, 0, readLen));}} catch (IOException e) {throw new RuntimeException(e);} finally {try {if (fileReader != null) {fileReader.close();}} catch (IOException e) {throw new RuntimeException(e);}}}
}
6 FileWriter 文件字符输出流
FileWriter
类的基础、实现关系如下图:
基本介绍:
- 构造方法:
new FileWriter(File file)
new FileWriter(String fileName)
- 如果没有指定
append
,则默认为false
,即每次使用一个新的流写入文件时,写入的内容会覆盖原有的内容。
- 如果没有指定
new FileWriter(File file, boolean append)
new FileWriter(String fileName, boolean append)
append
- 如果是true
,则字节将写入文件末尾而不是开头
-
write
方法-
write(int)
:写入单个字符 -
write(char[])
:写入指定数组 -
write(char[], off, len)
:写入指定数组的指定部分,即从下标为
off
开始写入len
个数据 -
write(String)
:写入整个字符串 -
write(String, off, len)
:写入字符串的指定部分
-
-
注意事项:
FileWriter 使用后,必须要关闭(调用close()方法)或刷新(调用 flush() 方法),否则数据写入不到指定的文件中!
案例讲解:
import java.io.FileWriter;
import java.io.IOException;public class FileWriter_ {public static void main(String[] args) {FileWriter fileWriter = null;char[] ch = {'b', 'c', 'e', 'g'};try {fileWriter = new FileWriter("d:\\0\\second.txt");fileWriter.write('T');fileWriter.write(ch);fileWriter.write(ch, 0, 3);fileWriter.write("熊老大在此");fileWriter.write("熊老大在学习", 0, 3);} catch (IOException e) {throw new RuntimeException(e);} finally {try {//fileWriter.flush();// close = flush() + 关闭if(fileWriter != null)fileWriter.close();} catch (IOException e) {throw new RuntimeException(e);}}}
}
相关文章:
java的文件输入输出流(FileInputStream、FileOutputStream、FileReader、FileWriter)
文章目录 文件输入输出流1 java I/O 流的原理流的分类 2 FileInputStream 文件字节输入流3 FileOutputStream 文件字节输出流4 使用文件字节输入输出流完成对文件的拷贝5 FileReader 文件字符输入流6 FileWriter 文件字符输出流 文件输入输出流 1 java I/O 流的原理 I/O 是 In…...
stm32week10
stm32学习 七.CAN 7.STM32 CAN外设 标识符过滤器: 每个过滤器的核心由两个32位寄存器组成:R1[31:0]和R2[31:0] FSCx:位宽设置,置0为16位,置1为32位 FBMx:模式设置,置0为屏蔽模式,…...
【UnityEditor扩展】如何在 Unity 中创建棱柱体(用作VR安全区检测),同时在编辑器插件中实现与撤销/恢复功能
Unity 编辑器扩展:3D 空间中绘制安全区棱柱体(含撤销/恢复/保存/读取) 在虚拟现实(VR)和增强现实(AR)开发中,安全区是保障用户安全的重要组成部分。通过精确控制用户活动范围&#…...
C++小游戏 合集
生化危机 #include<conio.h> #include<string.h> #include<stdio.h> #include<stdlib.h> #include<windows.h> #include<time.h> #include<direct.h> int n,round,gold0; bool f1,f2,f3,deadfalse,PC_64Bit; char str[4]; struct n…...
常州 d??
回来了! 今天(?发出来的时候可能已经是第二天了吧 真的爆零了qaq 挺难的 最高分只有100 而且t2t3t4一个人都没拿分qaq 这段时间在写网络流 唉博客还是不要写太水了 抄一点网络流代码上来 EK不写了 dinic会就行了 板子题洛谷p3376 dini…...
juc并发包的常用类、线程安全实现方式、锁机制及 JVM 优化策略
juc并发包的常用类、线程安全实现方式、锁机制及 JVM 优化策略 1. juc包下的常用类:线程池:并发集合类:同步工具类:原子类: 2. 怎么保证多线程安全:3. Java中常用锁及使用场景:4. 线程同步的方法…...
学习日记-0407(Inductive Matrix Completion Using Graph Autoencoder)
论文阅读:Inductive Matrix Completion Using Graph Autoencoder 代码:swtheing/IMC-GAE 总而言之就是设计了一个不同评分下的邻接图,然后对每一个评分图T进行独立GNN编码。这个 GNN 编码器主要由三个组件构成:嵌入层、消息传递层…...
FPGA入门:状态机思想编程
一、状态机思想编写流水灯 1、状态机思想的概念 状态机思想是一种用于描述和处理具有多个状态以及状态之间转换关系的系统的思维方式。以下是对其主要概念、应用场景和优势的介绍: 主要概念 状态:指系统在某一时刻的状况或条件。例如,在一…...
【电路笔记】-切换触发器
切换触发器 文章目录 切换触发器1、概述2、切换触发器3、JK触发器转换为D型触发器4、D型触发器转换为切换触发器切换触发器是常用的时序逻辑电路,作为单个比特双稳态存储元件,在计数器、存储器设备中经常使用,或作为响应时钟脉冲的分频器。 1、概述 切换触发器是另一种基于…...
示例项目文档模板集:TaskBoard 任务管理系统
一套完整、高可读性、结构清晰的项目文档模板,适用于中小型软件项目的设计、开发、交接与展示全流程。 📌 项目概述文档(overview.md) 📂 项目名称:TaskBoard 🧭 项目简介 TaskBoard 是一款专为敏捷团队打造的任务管理系统,支持任务分配、状态追踪与协作沟通,帮…...
TF-IDF忽略词序问题思考
自从开始做自然语言处理的业务,TF-IDF就是使用很频繁的文本特征技术,他的优点很多,比如:容易理解,不需要训练,提取效果好,可以给予大规模数据使用,总之用的很顺手,但是人…...
代理模式的优缺点是什么?
什么是代理模式? 代理模式(Proxy Pattern)是一种结构型设计模式,它通过创建代理对象来控制对原始对象的访问。 这种模式在前端开发中广泛应用,特别是在需要控制对象访问、添加额外逻辑或优化性能的场景中。 核心…...
十分钟上手:Distilling the Knowledge in a Neural Network
概述:知识蒸馏是一种模型压缩技术,通过让轻量化的学生模型模仿复杂教师模型的输出概率分布,结合软目标和硬目标进行训练,从而将教师模型的泛化能力迁移至学生模型,实现小模型的高效部署而不显著降低性能。 硬目标&…...
百度的deepseek与硅基模型的差距。
问题: 已经下载速度8兆每秒,请问下载30G的文件需要多长时间? 关于这个问题。百度的回答如下: 30GB文件下载时间计算 理论计算(基于十进制单位): 单位换算 文件大小:3…...
OpenCV 图形API(18)用于执行两个矩阵(或数组)的逐元素减法操作函数sub()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 描述 计算两个矩阵之间的逐元素差值。 sub 函数计算两个矩阵之间的差值,要求这两个矩阵具有相同的尺寸和通道数: dst ( I ) src…...
布谷一对一直播源码android版环境配置流程及功能明细
一:举例布谷交友(一对一直播源码)搭建部署的基本环境说明 1. 首先安装Center OS 7.9系统,硬盘最低 40G 2. 安装宝塔环境 https://bt.cn(强烈推荐使用) 3. 安装环境 ● PHP 7.3(安装redis扩展…...
#MongoDB 快速上手
docker pull mongo docker run -d --name my-mongo -p 27017:27017 mongo docker exec -it my-mongo mongo 🚪进入 Mongo Shell 后的第一步 你进入后会看到类似提示符: >说明已经进入 Mongo Shell,现在就可以操作数据库了。 …...
docker相关命令
常用命令 #创建并启动 docker-compose up -d # 启动之后就可以通过浏览器访问了 #停止并删除 docker-compose down #重启 docker-compose restart #停止 docker-compose stop #启动 docker-compose startdocker search #搜索镜像(只搜索官方仓库的,官方仓库地址&am…...
浅谈进程与程序的区别
如大家所了解的,进程与程序是有区别的。 下面做了一个总结,供大家参考、学习: 1. 程序是指令的有序集合,是一个静态的概念,其本身没有任何运行的含义。进程是程序在 CPU 上的一次执行过程,是一个动态的概…...
redis 和 MongoDB都可以存储键值对,并且值可以是复杂json,用完整例子分别展示说明两者在存储json键值对上的使用对比
Redis 存储 JSON 键值对示例 存储操作: // 存储用户信息(键:user:1001,值:JSON对象) SET user:1001 {"name":"Alice", "age":30, "address":"New York&quo…...
基于chatgpt得到的生活成本计算
意大利的生活成本因城市而异,比如米兰和罗马相对较贵,而南部城市如那不勒斯或巴勒莫则便宜一些。下面是意大利大致的基本生活成本和费用明细(以欧元€为单位,2025年初数据为基础,具体数值可能随时间和汇率略有变化&…...
C和C++有什么区别?
C和C是两种不同的编程语言,虽然它们有许多相似之处,但也存在一些关键的区别。 C是一种过程化编程语言,专注于函数和流程控制,非常适合系统级编程。而 C是一种面向对象编程语言,支持类、对象和封装、继承、多态等特性。…...
力扣1338 === 贪心算法解决数组减半问题
目录 问题分析 方法思路:贪心算法 步骤分解 代码解释 复杂度分析 正确性证明 示例验证 边界情况 总结 要解决这个问题,我们需要找到最少需要删除的不同整数集合,使得剩余的元素个数不超过原数组的一半。以下是对该问题的详细分析和解…...
企业知识库如何搭建?应对高频咨询的AI自助问答系统
在客户服务和内部沟通中,“同样的问题被反复问”、“信息找不到”、“新员工上手慢”等现象屡见不鲜。为了提升企业运营效率,越来越多企业开始重视知识库建设,而“企业知识库如何搭建”也成为热门话题。 尤其在AI技术快速发展的今天…...
UE5学习笔记 FPS游戏制作44 统一UI大小 sizeBox
如果我们希望多个类似的UI大小一样,例如不同菜单的标题,可以使用sizeBox组件 我们在标题控件上,用sizeBox包裹所有子物体 然后指定他的最小宽高,或最大宽高 如果指定的是最小宽高,当子元素(如图片…...
SpringAOP新链浅析
前言 在复现CCSSSC软件攻防赛的时候发现需要打SpringAOP链子,于是跟着前人的文章自己动手调试了一下 参考了大佬的文章 https://gsbp0.github.io/post/springaop/#%E6%B5%81%E7%A8%8B https://mp.weixin.qq.com/s/oQ1mFohc332v8U1yA7RaMQ 正文 依赖于Spring-AO…...
高效网页截图利器:支持长截图、异步加载内容截图、API调用、Docker一键部署!
一、简介 利用playwright自动化工具,模拟浏览器打开网页,实现完整网页截图功能支持长截图,支持异步加载动态渲染内容截图支持docker一键部署支持API调用项目地址:https://github.com/luler/hello_screenshot 二、安装 提前安装好d…...
处理语言模型返回的响应
completion.choices[0].message.content 是在处理语言模型(如 OpenAI 的 GPT 系列)返回的响应时,用于 访问模型生成的文本内容的代码路径。为了更好地理解它,我们需要先了解语言模型响应的结构。 1. 响应的结构 当使用语言模型&…...
Go语言类型捕获及内存大小判断
代码如下: 类型捕获可使用:reflect.TypeOf(),fmt.Printf在的%T。 内存大小判断:len(),unsafe.Sizeof。 package mainimport ("fmt""unsafe""reflect" )func main(){var i , j 1, 2f…...
Java 大视界 -- Java 大数据机器学习模型在智能客服多轮对话系统中的优化策略(179)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
CAS号:288574-78-7,Zinpyr-1可用作PET传感器
试剂描述: Zinpyr-1(ZP-1)是一种具细胞膜渗透性的荧光探针,选择性检测锌离子(Zn2)(Kd 0.7 0.1 nM)。一旦与金属离子复合,诱发荧光信号产生。活细胞内,Zinpyr…...
【JVM调优实战指南:从案例分析到性能优化】
一、JVM 调优核心原则 JVM 调优旨在平衡系统的吞吐量、延迟和内存使用。在进行 JVM 调优时,我们可以遵循以下原则: 先优化代码:优先排查业务逻辑中的内存泄漏、对象滥用等问题。优化代码不仅能从根本上解决性能问题,还能减少对 J…...
交换机转发原理 和 DNS服务
1. 收到报文后,将其转换为二进制,并记录在缓存当中 2. 根据二进制中的源 MAC 地址,与接收报文的接口,记录对应关系,在 MAC 地址表中,每个动态表项 300S 老化时间。 3. 判断 如果目的 MAC 是组播或广…...
强化学习Q-Learning:DQN
强化学习Q-Learning/DQN 本文是一篇学习笔记,主要参考李宏毅老师的强化学习课程。 目前主流的强化学习方法大致可以分为 policy-based 和 value-based 两大类。之前我们介绍的 policy gradient 策略梯度,就是 policy-based 的方法。本文要介绍的 Q-learn…...
OpenCv(七)——模板匹配、打包、图像的旋转
目录 一、模板匹配 模板匹配原理 1、单模板之间的匹配 (1)读取并显示待匹配的图片和模板图片 (2)模板匹配并绘制匹配位置的外接矩形 (3)显示最终的效果 2、模板与多个对象匹配,仅匹配当前…...
汽车售后诊断 ODX 和 OTX 对比分析报告
一、引言 在汽车行业不断发展的当下,汽车售后诊断技术对于保障车辆性能、维护车主权益以及提升汽车品牌服务质量起着至关重要的作用。随着汽车电子化程度的不断提高,售后诊断所涉及的数据和流程愈发复杂,这就促使行业需要更加标准化、高效化…...
关于图卷积
深入理解神经网络中的图卷积 一、为什么需要图卷积(动机) 在图结构中,比如: 社交网络(节点是人,边是朋友关系)分子结构(节点是原子,边是化学键)知识图谱&a…...
Meta LLaMA 4:对抗 GPT-4o 与 Claude 的开源王牌
2025 年 4 月,Meta 正式发布了 LLaMA 4 系列的首批两款模型。 这两款模型模型分别是:LLaMA 4 Scout 与 LLaMA 4 Maverick,均采用了 专家混合架构(Mixture-of-Experts, MoE)。 据 Meta 表示,这是首次有 …...
如何进行SQL调优
如何进行SQL调优 SQL 调优是优化数据库查询性能的过程,目的是减少查询的执行时间,提高数据库系统的整体效率。SQL 调优的技巧和方法可以针对不同的数据库管理系统(DBMS)有所不同,但基本的原则和步骤是相似的。以下是一…...
WAF防护规则配置技巧与企业级安全实践指南
面对日益复杂的Web应用攻击,WAF规则配置直接决定防护体系的有效性。本文深度解析规则优先级编排、误报消减策略、智能学习机制等17项关键技术,结合金融行业API攻击案例与Gartner最新防御框架,为企业提供可落地的WAF优化路径。 WAF规则引擎的…...
第16届蓝桥杯单片机模拟试题Ⅱ
试题 代码 sys.h #ifndef __SYS_H__ #define __SYS_H__#include <STC15F2K60S2.H> //ds1302.c extern unsigned char time[3]; void w_ds1302(); void r_ds1302(); //iic.c float v_adc(unsigned char addr); //sys.c extern float light_v; extern float rb2_v; exte…...
机器学习——ROC曲线、PR曲线
一、ROC曲线简介 1.1 ROC曲线的构成 1.横轴(假正率,FPR): 表示负样本被错误分类为正的比例(越小越好) 2.纵轴(真正率,TPR,即召回率): 表示正样…...
Flutter之交互事件
目录: 1、点击事件标准案例1.1、效果图2.1、代码实现 1、点击事件标准案例 1.1、效果图 2.1、代码实现 class FavoriteWidget extends StatefulWidget {const FavoriteWidget({super.key});overrideState<FavoriteWidget> createState() > _FavoriteWidge…...
深入解析Spring Boot自动装配:原理、设计与最佳实践
引言 Spring Boot作为现代Java开发中的一股清流,凭借其简洁、快速和高效的特性,迅速赢得了广大开发者的青睐。而在Spring Boot的众多特性中,自动装载(Auto-configuration)无疑是最为耀眼的明珠之一。本文将深入剖析Sp…...
【责任链】模式解决流程中多个接口的流程问题
业务需求 整体流程有5步骤,每个步骤调用一个接口,每个接口成功才能进行下一步。如a->b->c->d->e, 比如入学报到 a:报班,根据名字生成学号uid b:根据学号分配班级获取班级编号cid c:…...
excel常见错误包括(#N/A、#VALUE!、#REF!、#DIV/0!、#NUM!、#NAME?、#NULL! )
目录 1. #N/A2. #VALUE!3. #REF!4. #DIV/0!5. #NUM!6. #NAME?7. #NULL!8.图表总结 在 Excel 中,可能会遇到以下常见的错误值,每个都有特定的含义和成因: 1. #N/A 含义: 表示“Not Available”(不可用)。…...
【湖南大学】2025我们该如何看待DeepSeek
大家好,我是樱木。 DeepSeek 官方网站:https://www.deepseek.com/ 一、DeepSeek 到底是什么? TA 到底厉害在哪里? 故事从 ChatGPT 说起 去年我们看到 Open AI 发布ChatGPT 后,全球的注意力到了 AI 身上。 我们来拆…...
RAG中构建个人知识库
1. 添加本地模型 1.1 查看本地模型 ollama list1.2 ragflow添加本地模型 1.3 系统模型配置 2. 构建知识库 2.1 准备知识库素材 2.2 配置知识库 2.3 知识库绑定素材文件 上传文件素材 - 解析文件 3. 构建交互系统 3.1 配置助理 3.2 完善提示词 3.3 设置模型参数 4. 体验效…...
在 Kubernetes (k8s) 中,apiserver 的 IIP和 VIP的区别
在 Kubernetes (k8s) 中,apiserver 的 IIP(Internal IP) 和 VIP(Virtual IP) 是与集群网络通信和高可用性设计相关的两个重要概念。 IIP(Internal IP) 定义: IIP 是 apiserver 所在…...
OpenCV--图像形态学
在图像处理领域,图像形态学是一种基于形状进行图像分析的有力工具,广泛应用于图像分割、特征提取、边缘检测、图像降噪等多个方面。借助 OpenCV 这个强大的计算机视觉库,我们可以轻松实现各种图像形态学操作。本文将深入探讨图像形态学的基本…...