【Java IO流】字节输入流FileInputStream、字节输出流FileOutputStream
目录
0.前言
1.FileInputStream
1.1 概述
1.2 构造方法
1.3 成员方法
1.4 FileInputStream读取文件案例演示
2.FileOutputStream
2.1 概述
2.2 构造方法
2.3 成员方法
2.4 写入文本文件案例演示
3.FileInputStream + FileOutputStream拷贝文件
0.前言
本文讲解的是两个比较重要的节点流,也是两个比较重要的字节流。即字节输入流 FileInputStream、字节输出流 FileOutputStream
Java IO 流体系图如下:
1.FileInputStream
1.1 概述
作用:从磁盘文件中读取字节数据 Java 程序(内存)中
1.2 构造方法
1.3 成员方法
FileInputStream 读取数据的方法如下:
注:调用 read() 每次只能从文件中读取 1 个字节数据,速度较慢,而且返回值是 int 类型,操作不方便。所以最好使用 read(byte[] b) 来读取字节数据,每次读取 b.length 个字节数据
1.4 FileInputStream读取文件案例演示
虽然字节流可以操作任何类型文件,但由于不同的字符在文本文件中占用的字节数不同,因此使用字节流来读取文本文件非常容易发生乱码的现象
所以字节输入流 FileInputStream 通常用于读取图片、视频等二进制文件
但这里为了看到读取效果,还是以读取文本文件举一些案例吧,我还会举一些发生乱码和不发生乱码的清空
FileInputStream 字节输入流读取文件的步骤
① 创建字节输入流对象 FileInputStream,关联数据源文件 (建议第一步就抛出父类异常IOException)
② 定义变量,记录读取到的字节数据
③ 循环调用 read 方法读取字节数据,只要还未到文件末尾就一直读,并将读取到的字节数据保存在变量中
④ 释放流资源,避免内存泄漏
前言:所有案例文本文件的编码方式均为 UTF-8
案例1:文本内容只有英文字符 (不发生乱码)
ASCII 字符集的 128 个字符经过 UTF-8 编码之后都用 1 字节存储即可,所以使用 FileInputStream 字节输入流读取只有英文字符的文本不会出现乱码
演示类中使用到的文件路径是 D:\javaProjects\untitled\fileDemo\5.txt ,5.txt 使用的编码方式是 UTF-8,文本内容是 "abc"。具体如下:
演示类完成的任务是:调用 read(byte[ ] b) ,读取 5.txt 的所有字节,并将文本内容正确显示在控制台上
代码如下:
import java.io.*;
public class demo {public static void main(String[] args) throws IOException {//1.创建FileInputStream字节输入流对象,关联目的地文件 5.txtFileInputStream inputStream = new FileInputStream("D:\\javaProjects\\untitled\\fileDemo\\5.txt");//2.定义字节数组b,记录读取到的字节数据byte[] b = new byte[3];//每次读取3个字节(文本内容只有英文字符时,字节数组的长度可以任意,长度多少都不会发生乱码)int len;//用来记录每次读取的有效字节数//3.循环调用 read(byte[] b) 方法读取数据,只要还未到文件末尾就一直读,并将读取到的字节保存在b数组中while ((len = inputStream.read(b)) != -1) {//关键处:对读取到的字节数据按 "UTF-8" 进行解码String s = new String(b, 0, len, "UTF-8");System.out.print(s);}//4.释放流资源,避免内存泄漏inputStream.close();}
}
运行结果:
🆗,为什么文本内容只有英文字符就不会发生乱码呢?下面是解码过程,如下:
由于每个英文字符 UTF-8 编码之后固定占用 1 个字节,所以不会发生乱码
案例2:文本内容包含 英文字符 + 中文字符 (发生乱码)
演示类中使用到的文件路径是 D:\javaProjects\untitled\fileDemo\4.txt ,4.txt 使用的编码方式是 UTF-8,文本内容是 "a小"。具体如下:
这里为了方便解释为什么发生乱码,我们只读取 4.txt 文件的 3 字节数据,代码如下:
import java.io.*;
public class demo {public static void main(String[] args) throws IOException {//1.创建FileInputStream字节输入流对象,关联目的地文件 4.txtFileInputStream inputStream = new FileInputStream("D:\\javaProjects\\untitled\\fileDemo\\4.txt");//2.定义字节数组b,记录读取到的字节数据byte[] b = new byte[3];int len;//用来记录每次读取的有效字节数//3.调用read(byte[] b) 方法读取文件中的3字节数据len = inputStream.read(b);//4.对读取到的3字节数据按 "UFT-8" 进行解码String s = new String(b, 0, len, "UTF-8");System.out.println(s);//5.释放流资源,避免内存泄漏inputStream.close();}
}
运行结果:
可以看到,确实发生乱码了, 发生乱码的原因可以看如下的解码过程:
所以,发生乱码的本质原因就是非英文字符在经过某种编码之后,占据的字节数 > 1,比如常用的汉字在 UTF-8 编码之后占用 3 字节,生僻字占用 4 字节,这就会导致在解析读取到的字节数据时,可能某个字符对应的编码字节被 "分割" 开,导致解码错误,从而发生乱码
🆗,解释清楚了,那么请问:在发生乱码的这个案例中,如果我们把字节数据 b 的长度改为 4,仍然去读取 4.txt 文件,是否会发生乱码呢?
答案是不会,代码如下:
import java.io.*;
public class demo {public static void main(String[] args) throws IOException {//1.创建FileInputStream字节输入流对象,关联目的地文件 4.txtFileInputStream inputStream = new FileInputStream("D:\\javaProjects\\untitled\\fileDemo\\4.txt");//2.定义字节数组b,记录读取到的字节数据byte[] b = new byte[4];int len;//用来记录每次读取的有效字节数//3.调用read(byte[] b) 方法读取文件中的3字节数据len = inputStream.read(b);//4.对读取到的3字节数据按 "UFT-8" 进行解码String s = new String(b, 0, len, "UTF-8");System.out.println(s);//5.释放流资源,避免内存泄漏inputStream.close();}
}
运行结果:
可以看到,确实不发生乱码了,不发生乱码的原因可以看如下的解码过程:
可以看到,由于我们将字节数组 b 的长度改为 4,刚好可以读取完 4.txt 的所有字节数据,而且 '小' 对应的 UTF-8 编码字节没有被 "分割" 开,所以系统在用 UTF-8 解码字节数组 b 时不会发生乱码
总结:所以说在 Java IO 流中几乎不会用字节流来操作纯文本文件,因为容易发生乱码,字节流更多用于操作二进制文件,比如 .img、.mp3、.ppt 等等,操作纯文本文件更多由字符流来完成,各司其职
2.FileOutputStream
2.1 概述
作用:将字节数据 从 Java 程序(内存) 写入到磁盘文件
2.2 构造方法
FileOutputStream 的 4 个常用的构造方法如下:
注:如果目的地文件不存在,使用 FileOutputStream 构造器方法后会在磁盘上生成该文件,但要保证父级目录是存在的
2.3 成员方法
① void write(int b) 虽然接收参数是 int 类型,但底层实际会进行强制类型转换 int ----> byte ,所以调用 write(int b) 是写入一个 8 位的字节数据,如下所示:
② 与字符输出流(比如 FileWriter ) 不同,FileOutputStream 本身不带有缓冲区,所以其 flush() 底层是个空方法,没有作用。所以每次调用 write 方法时,会直接将数据写入文件中,即只要 write() 方法执行成功,数据就会被写入文件。但是最终还是要调用 close() 释放流资源噢,避免内存泄漏
PS:这里可以自己尝试一下,就不举例子说明了
2.4 写入文本文件案例演示
Java 的 String 类提供了 getBytes 编码方法,使得使用字节输出流 FileOutputStream 向文本文件中写入字符比较方便
字节输出流写入文件的步骤
① 创建字节输出流对象 FileOutputStream ,关联目的地文件(建议第一步就抛出父类异常IOException)
② 调用 wirte(byte[ ] b) 方法将字节数据写入到目的地文件中
③ 释放流资源,避免内存泄漏
注:调用 write(int b) 每次写入 1 个字节数据不方便,而且速度太慢,我们这里直接使用 write(byte[ ] b) ;另外 FileOutputStream 使用后,必须要调用 close() 关闭,否则无法写入文件中
案例演示
演示类中使用到的文件路径是 D:\javaProjects\untitled\fileDemo\4.txt,4.txt 是一个使用 UTF-8 编码的空文件,如下:
演示类完成的任务是:调用 write(byte[ ] b),往 4.txt 文件中写入文本内容 "你好,我是小马😀"
代码如下:
import java.io.*;
public class demo {public static void main(String[] args) throws IOException {//1.创建FileWriter字符输出流对象,关联目的地文件 4.txtFileOutputStream fos = new FileOutputStream("D:\\javaProjects\\untitled\\fileDemo\\4.txt");//2.调用write(byte[] b)写入文本内容"你好,我是小马😀"String content = "你好,我是小马😀";//定义写入内容byte[] bytes = content.getBytes("UTF-8");//对字符串按UTF-8编码,得到编码之后的字节数组fos.write(bytes);//把"你好,我是小马😀"对应的UTF-8字节数据写入文件//3.释放流资源,避免内存泄漏fos.close();}
}
运行结果:
3.FileInputStream + FileOutputStream拷贝文件
拷贝文件大致流程图如下:
字符流只能拷贝 .txt、.java、.c、.cpp 等一些纯文本文件,对于.ppt、.png、.img、.mp3 等非文本文件是无法操作的,这时候就可以使用字节流来拷贝
需要注意的是:字节流是可以操作任何类型文件的,但因为在使用 FileInputStream 的时候读取文本文件的时候容易乱码,所以不会用来拷贝文本文件
下面就以拷贝一张图片为例,代码是通用的,拷贝视频、音频等二进制文件都行
字节流 FileInputStream + FileOutputStream 拷贝文件步骤
① 创建字符输入流 FileInputStream 对象,关联源文件
② 创建字符输出流 FileOutputStream 对象,关联目的地文件
③ 定义 byte 类型数组 b ,记录读取到的字节数据
④ 循环调用 FileInputStream 的 read(byte[ ] b) 方法读取,只要未到流末尾就一直读,将读取到的字节数据保存在 b 中
⑤ 将读取到的字节数据调用 FileOutputStream 的 write(byte[ ] b,int off,int len) 方法写入到目的地文件
⑥ 释放流资源,避免内存泄漏
案例演示
演示类中使用到的图片路径是 D:\picture\陆雪琪.png,如下:
演示类完成的任务是:拷贝该图片,拷贝后的图片存放在 D:\picture\陆雪琪拷贝.png
代码如下:
import java.io.*;
public class demo {public static void main(String[] args) throws IOException {/**字节流拷贝文件的通用代码模板*///1.创建字节输入流FileInputStream,关联源文件 陆雪琪.pngFileInputStream fis = new FileInputStream("D:\\picture\\陆雪琪.png");//2.创建字节输出流FileOutputStream,关联目的地文件 陆雪琪拷贝.pngFileOutputStream fos = new FileOutputStream("D:\\picture\\陆雪琪拷贝.png");//3.定义字节数组b,每次读取1024个字节byte[] b = new byte[1024];int len;//用来记录读取到的有效字符个数// 4.循环调用 read(byte[] b) 方法读取,未到文件末尾就一直读,并将读取到的字节数据保存在b中while ((len = fis.read(b)) != -1) {//5.将读取到的字节数据调用 write(byte[] b,int off,int len) 方法写入到目的地文件fos.write(b, 0, len);}//6.释放流资源,避免内存泄漏fos.close();fis.close();}
}
运行结果:
✌,拷贝成功
🆗,以上就是 FileInputStream 、 FileOutputStream 的所有内容,重点是拷贝文件部分
相关文章:
【Java IO流】字节输入流FileInputStream、字节输出流FileOutputStream
目录 0.前言 1.FileInputStream 1.1 概述 1.2 构造方法 1.3 成员方法 1.4 FileInputStream读取文件案例演示 2.FileOutputStream 2.1 概述 2.2 构造方法 2.3 成员方法 2.4 写入文本文件案例演示 3.FileInputStream FileOutputStream拷贝文件 0.前言 本文讲解的是…...
信息收集新利器:SSearch Chrome 插件来了
SSearch 下载地址 SSearch 😣用途 每次谷歌语法搜索时还得自己写,我想省事一点,弄了一个插件,先加了几个常用的语法,点击后会跳转到对应搜索页面,也可以直接在搜索框微调 后续也会加些其他语法 &#…...
【AI面试准备】AI误判案例知识库优化方案
面试题:建立内部知识库:收集AI误判案例训练领域专属模型。 在回答关于“建立内部知识库收集AI误判案例训练领域专属模型”的面试问题时,建议从以下结构化框架展开,既能体现专业性,又能展现解决问题的系统性和实际落地…...
从零开始讲DDR(8)——AXI 接口MIG 使用(1)
一、前言 在之前的系列文章中,我们已经讨论过了MIG ip的接口内容,配置方式和modelsim独立仿真相关的内容,因此,本文对于之前已经讨论过的相关内容只做简单描述,着重介绍AXI 接口MIG使用上与普通ui接口的不同之处。感兴…...
字符和编码(python)
位数:英文字符使用 1 个字节表示,中文字符通常使用 3 个字节。示例:汉字 “汉” 的 UTF-8 编码是 \xE6\xB1\x89。优点:兼容 ASCII,广泛用于网络传输和文件存储。 Python 中的字符串类型 在 Python 中,字…...
【STM32】定时器输入捕获
STM32 定时器输入捕获功能笔记 一、什么是输入捕获(Input Capture) 输入捕获是利用定时器的输入通道,在检测到信号电平变化(如上升沿或下降沿)时,立即将当前计数器的值捕获并保存到捕获寄存器(…...
spring-ai集成langfuse
1、pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.…...
SALOME源码分析: ParaVis
本文分析SALOME中ParaVis模块。 注1:限于研究水平,分析难免不当,欢迎批评指正。注2:文章内容会不定期更新。 一、核心组件 二、关键流程 三、FAQs 网络资料 SALOME Scientific visualisationPARAVIS Module - Architecture …...
Ubuntu 安装 MySQL8
在 Ubuntu 下安装 MySQL 服务,推荐使用 apt install 官方的 APT 仓库安装方式,这种方式最安全、最稳定、能自动处理依赖关系,也支持后续升级。不推荐在官网手动下载 .deb 包的方式。 配置 Ubuntu 服务器 1. 确认 Ubuntu 系统版本 使用如下命…...
MATLAB图像加密案例
下面是一个使用 MATLAB 编写的简单图像块置乱加密/解密程序,主要利用了函数来组织代码。 这个程序通过将图像分割成小块,然后根据一个密钥(用于随机数生成器种子)打乱这些块的顺序来实现加密。解密过程则使用相同的密钥恢复原始块顺序。 核心思想: 分块: 将图像划分为 …...
同构字符串(简单)
新建两个哈希表,构建s到t中的字母的映射以及t到s中的字母的映射。 class Solution {public boolean isIsomorphic(String s, String t) {Map<Character,Character> s2tnew HashMap<Character,Character>();Map<Character,Character> t2snew Hash…...
红米Note9 4G版拆开后盖操作细节
先把sim卡槽整个拔出 然后如下图做试,4个箭头的位置塞塑料片或者指甲插入,弄开,然后从图中右侧抠开(左侧不行,有排线连着后面手机主板) 如果不按照这种办法,会把后盖很多地方抠烂...
Qt通过QXlsx库文件写入到excl文件,读取excl文件
第一:下载QXlsx库文件 https://download.csdn.net/download/qq_32663053/90739425 第二:在Qt项目中引入QXlsx库,需要把QXlsx库文件放在项目文件夹下 第三:将tableview中的数据存入到excl文件 代码: void MainWindow…...
ESP32 在Platform Arduino平台驱动外部PSAM,进行内存管理
一,基本介绍 本文中主要介绍ESP32、ESP32S3系列单片机,基于Vscode Platform Arduino和Arduino框架下如何使用外部PSAM,以及必要的API调用函数进行内存分配和管理。 使用前提是开发板有外部PSRAM。 二,平台配置 2.1 Arduino平台 …...
【AI论文】WebThinker:赋予大型推理模型深度研究能力
摘要:大型推理模型(LRMs),如OpenAI-o1和DeepSeek-R1,展示了令人印象深刻的长期推理能力。 然而,他们对静态内部知识的依赖限制了他们在复杂的知识密集型任务上的表现,并阻碍了他们生成需要综合各…...
Python爬虫基础总结
Python爬虫基础总结 一、爬虫概述 1.1 什么是爬虫 网络爬虫(Web Crawler)是一种自动浏览万维网的程序或脚本,它按照一定的规则,自动抓取互联网上的信息并存储到本地数据库中。 1.2 爬虫工作流程 URL管理器࿱…...
如何构建跨平台可复用的业务逻辑层(Web、App、小程序)
从传统的Web应用到移动端的App,再到近年来快速崛起的小程序,用户的触点变得异常分散且多样化。这种多端并存的现状一方面为企业提供了更广阔的市场机会,另一方面也对开发团队提出了更高的要求:如何在不同平台间实现高效开发、降低…...
本地大模型编程实战(32)用websocket显示大模型的流式输出
在与 LLM(大语言模型) 对话时,如果每次都等 LLM 处理完毕再返回给客户端,会显得比较卡顿,不友好。如何能够像主流的AI平台那样:可以一点一点吐出字符呢? 本文将模仿后端流式输出文字,前端一块一块的显示文字…...
MySQL数据库上篇
#作者:允砸儿 #日期:乙巳青蛇年 四月初五 笔者好久没有更新。今天来写一下MySQL数据库的内容还是老样子分为上中下三篇来写,话不多说咱们直接进入正题。 什么是数据库 数据库是统一管理的、长期储存在计算机内非仍、有组织的相关数据集合…...
Webug4.0靶场通关笔记13- 第22关越权修改密码
目录 第22关 越权修改密码 1.打开靶场 2.源码分析 3.越权修改密码 (1)获取渗透账号 (2)越权修改aaaaa账号的密码 (3)修改aaaaa用户密码渗透成功 (4)水平越权修改mooyuan账号…...
Python 基于 lstm,cnn 算法的网络舆情可视化系统
大家好,我是Python徐师兄,一个有着7年大厂经验的程序员,也是一名热衷于分享干货的技术爱好者。平时我在 CSDN、掘金、华为云、阿里云和 InfoQ 等平台分享我的心得体会。 🍅文末获取源码联系🍅 2025年最全的计算机软件毕…...
【免费】2007-2021年上市公司对外投资数据
2007-2021年上市公司对外投资数据 1、时间:2007-2021年 2、指标:股票代码、统计截止日期、货币编码、货币类型、投资事件类型编码、投资事件类型、报告期末投资金额总计、占报告期对外投资总额的比例(%) 3、范围:上市公司 4、来源&#x…...
每天学一个 Linux 命令(33):uniq
每天学一个 Linux 命令(33):uniq 命令简介 uniq 是 Linux 系统中一个非常实用的文本处理命令,全称为 “unique”。它主要用于从已排序的文本文件中检测、过滤或统计重复的行。该命令通常与 sort 命令配合使用,是 Shell 脚本编程和日常文本处理中的常用工具之一。 命令语…...
WebRtc11:SDP详解
SDP规范 会话层(全局)媒体层(局部) 会话层 会话的名称和目的会话的存活时间会话中包含多个媒体信息 SDP媒体信息 媒体格式传输协议传输IP和端口媒体负载类型 SDP格式 由多个< type > < value > 组成一个会话级…...
51单片机驱动 矩阵键盘
连接方式为8-1顺序连接P1端口P10-P17,代码返回键值 0-15. // 矩阵键盘扫描 uchar key_scan(void) {u8 key_value 255;u8 row, col;// 设置P1.0-P1.3为输出,P1.4-P1.7为输入P1 0xF0; // 1111 0000if((P1 & 0xF0) ! 0xF0) { // 有按键按下delay_m…...
解决The‘InnoDB’feature is disabled; you need MySQL built with ‘InnoDB’ to have it
出现如下语句:The ‘InnoDB feature is disabled; you need MySQL built with ‘InnoDB to have it working; 是mysql配置文件禁掉了这个选项! 关闭mysql数据库 在mysql的安装目录中找到my.ini文件 找到skip-innodb,在前面加上#号…...
大模型压缩技术详解(2025最新进展)
在2025年的AI技术格局中,像DeepSeek这样的顶尖模型开源已成为现实。那是否存在一种可行路径,让企业能够使用专注于自身领域的强力AI模型,同时大幅降低部署成本,仅需一张普通的4090显卡?本文将深入探讨两种主流的模型压…...
第 5 篇:红黑树:工程实践中的平衡大师
上一篇我们探讨了为何有序表需要“平衡”机制来保证 O(log N) 的稳定性能。现在,我们要认识一位在实际工程中应用最广泛、久经考验的“平衡大师”——红黑树 (Red-Black Tree)。 如果你用过 Java 的 TreeMap 或 TreeSet,或者 C STL 中的 map 或 s…...
spring-- 事务失效原因及多线程事务失效解决方案
事务失效原因 类的自调用:直接调用本类的方法,没有通过代理对象来调用方法,代理对象内部的事务拦截器不会拦截到这次行为。则不可能开启事务 使用私有方法:因为spring的事务管理是基于AOP实现的,AOP代理无法拦截目标对…...
MLPerf基准测试工具链定制开发指南:构建领域特异性评估指标的实践方法
引言:基准测试的领域适配困局 MLPerf作为机器学习性能评估的"黄金标准",其通用基准集在实际科研中常面临领域适配鸿沟:医疗影像任务的Dice系数缺失、NLP场景的困惑度指标偏差等问题普遍存在。本文通过逆向工程MLPerf v3.1工具…...
深度理解linux系统—— 进程切换和调度
前言: 了解了进程的状态和进程的优先级,我们现在来看进程是如何被CPU调度执行的。 在单CPU的系统在,程序是并发执行的;也就是说在一段时间呢,进程是轮番执行的; 这也是说一个进程在运行时不会一直占用CPU直…...
【凑修电脑的小记录】vscode打不开
想把vscode的数据和环境从c盘移到d盘 大概操作和这篇里差不多 修改『Visual Studio Code(VS Code)』插件默认安装路径的方法 - 且行且思 - 博客园 在原地址保留了个指向新地址的链接文件。 重新安装vscode后双击 管理员身份运行均无法打开࿰…...
2025五一数学建模竞赛A题完整分析论文(共45页)(含模型、可运行代码、数据)
2025年五一数学建模竞赛A题完整分析论文 摘 要 一、问题分析 二、问题重述 三、模型假设 四、符号定义 五、 模型建立与求解 5.1问题1 5.1.1问题1思路分析 5.1.2问题1模型建立 5.1.3问题1参考代码 5.1.4问题1求解结果 5.2问题2 5.2.1问题2思路分析 …...
从0搭建Transformer
0. 架构总览: 1. 位置编码模块: import torch import torch.nn as nn import mathclass PositonalEncoding(nn.Module):def __init__ (self, d_model, dropout, max_len5000):super(PositionalEncoding, self).__init__()self.dropout nn.Dropout(pdrop…...
生物化学笔记:神经生物学概论07 躯体感受器 传入方式 自主神经系统
功能各异的躯体感受器 解释张力: 形形色色的传入方式 脑中的“倒立小人” 自主神经系统...
滑动窗口leetcode 209和76
一、leetcode 209. 长度最小的子数组 代码: class Solution { public:int minSubArrayLen(int target, vector<int>& nums) {int n nums.size();int left 0;int sum 0;int res 100001;for(int right 0;right <n;right){sum nums[right];while(s…...
FPGA:介绍几款高速ADC及其接口形式
本文介绍了几款采样率至少为500Msps的高速ADC芯片,并详细介绍ADC与FPGA之间的常见接口形式,以及FPGA如何正确读取高速ADC的输出数据。以下内容基于当前的高速ADC技术趋势和常见的工程实践。 一、推荐的高速ADC芯片(采样率≥500Msps࿰…...
未使用连接池或配置不当的性能陷阱与优化实践
目录 前言一、传统连接管理的性能缺陷与风险1. 未使用连接池的致命代价2. 连接池配置不当的典型表现 二、高性能连接池选型与核心参数优化1. HikariCP:零开销连接池的标杆2. Druid:功能完备的国产连接池 三、连接池性能调优的黄金法则1. 科学设定最大连接…...
亚马逊云服务器性能深度优化方案(2025版)
亚马逊云服务器性能深度优化方案(2025版) 一、计算架构全面升级 1. 新一代AI算力引擎 • Trn2 UltraServer实例:搭载64颗第二代Trainium芯片,单节点FP8算力达83.2 PFlops,支持千亿参数大模型训练,训…...
【IPMV】图像处理与机器视觉:Lec9 Laplace Blending 拉普拉斯混合
【IPMV】图像处理与机器视觉 本系列为2025年同济大学自动化专业**图像处理与机器视觉**课程笔记 Lecturer: Rui Fan、Yanchao Dong Lec0 Course Description Lec3 Perspective Transformation Lec7 Image Filtering Lec8 Image Pyramid Lec9 Laplace Blending 持续更新中 …...
【东枫电子】AMD / Xilinx Alveo™ UL3422 加速器
AMD / Xilinx Alveo™ UL3422 加速器 AMD / Xilinx Alveo™ UL3422 加速器提供超低延迟网络和灵活应变的硬件,支持纳秒级交易策略。AMD Virtex™ UltraScale™ VU2P FPGA 为 AMD / Xilinx Alveo UL3422 加速器提供强大的支持。该加速器采用延迟优化的收发器技术&am…...
Linux架构篇、第一章_03安装部署nginx
Linux_基础篇 欢迎来到Linux的世界,看笔记好好学多敲多打,每个人都是大神! 题目:安装部署nginx 版本号: 1.0,0 作者: 老王要学习 日期: 2025.05.02 适用环境: Centos7 文档说明 本文档聚焦于 CentOS 7 环境下 Nginx 的安装部…...
Semantic Kernel 快速入门
文章目录 Semantic Kernel 快速入门一、什么是 Semantic Kernel?1.1 核心特性 二、安装和配置2.1 安装 .NET SDK2.2 创建新的 .NET 项目2.3 安装 Semantic Kernel 三、快速入门3.1 导入依赖包3.2 添加 AI 服务3.3 添加企业服务3.4 生成内核并检索服务3.5 添加插件创…...
MySQL进阶(一)
一、存储引擎 1. MySQL体系结构 连接层: 最上层是一些客户端和链接服务,主要完成一些类似于连接处理、授权认证、及相关的安全方案。服务器也会为安全接入的每个客户端验证它所具有的操作权限 服务层: 第二层架构主要完成大多数的核心服务…...
ThreadLocal理解
1.thread是线程,threadLocal是对象? 在 Java 中: Thread 是线程类,其实例代表线程:Thread 类用于创建和管理线程,每个线程都是 Thread 类的一个实例,用于执行具体的任务,例如&…...
PyTorch、Flash-Attn、Transformers与Triton技术全景解析+环境包
PyTorch、Flash-Attn、Transformers与Triton技术全景解析 包好难找 这里是下载链接 添加链接描述 摘要 本文系统性地介绍了深度学习领域的四大关键技术框架:PyTorch、Flash-Attn、Hugging Face Transformers和Triton,分别从核心特性、技术优势、应用场…...
mindyolo填坑
1、按照gitee上的文档跑预测代码,跑不通 更改: 将predict.py复制到跟目录。如果是cpu(本地测试比较常见),那么正确的命令行是: python predict.py --device_targetCPU --config ./configs/yolov7/yolov7.…...
【C++】平衡二叉树(AVL树)迭代版
目录 前言: 一:判断一棵树是否为平衡二叉树 二:明确思路 1.为什么使用平衡二叉树 2.旋转 2.1 左旋 2.2 右旋 3.冲突节点 4.平衡因子 5.双旋 5.1 左右双旋(LR) 5.2 右左双旋(RL) 6.平衡因子的更新 7.冲突节点问题补充 三&…...
双链表详解
一、双向链表介绍 二、实现双向链表 1.定义双向链表的结构 2.双向链表的初始化 3.双向链表的尾插 4.双向链表的头插 5.双向链表的打印 6.双向链表的尾删 7.双向链表的头删 8.查找指定位置的数据 9.在指定位置之后插入数据 10.删除指定位置的数据 11.链表的销毁 三、…...
6.9.单源最短路径问题-BFS算法
一.前言: 问题1: 以上述图片为例,比如从G港到Y城,可以是G港->R城->Y城,也可以是G港->P城->Y城等,有很多条路径都可以实现从G港到Y城,但要从中找出G港到Y城距离最短的那一条路径&am…...