【Java】I/O 流篇 —— 打印流与压缩流
目录
- 打印流
- 概述
- 字节打印流
- 构造方法
- 成员方法
- 代码示例
- 字符打印流
- 构造方法
- 成员方法
- 代码示例
- 打印流的应用场景
- 解压缩/压缩流
- 解压缩流
- 压缩流
- Commons-io 工具包
- 概述
- Commons-io 使用步骤
- Commons-io 常见方法
- 代码示例
- Hutool 工具包
打印流
概述
分类:打印流一般是指字节打印流 PrintStream、字符打印流 PrintWriter 两个类,打印流只有输出流没有输入流
特点:
- 打印流只操作文件的目的地,不操作数据源
- 特有的写出方法可以实现数据原样写出
- 文件中是 97,打印 97
- 文件中是 true,打印 true
- 特有的写出方法,可以实现自动刷新,自动换行
- 打印一次数据 = 写出 + 换行 + 刷新
字节打印流
构造方法
public PrintStream(OutputStream/File/String)
关联字节输出流/文件/文件路径public PrintStream(String fileName,Charset charset)
指定字符集public PrintStream(OutputStream out,boolean autoFlush)
可设置是否自动刷新public PrintStream(OutputStream out,boolean autoFlush,String encoding)
指定字符集且可设置是否自动刷新
注意事项:字节流底层没有缓冲区,开不开自动刷新都一样
成员方法
public void write(int b)
常规方法,跟之前一样,将指定的字节写出public void println(Xxx xx)
特有方法,打印任意数据,自动刷新,自动换行public void print(Xxx xx)
特有方法,打印任意数据,不换行public void printf(String format,Object...args)
特有方法,带有占位符的打印语句,不换行
代码示例
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;public class printStream {public static void main(String[] args) throws IOException, FileNotFoundException {// 创建对象PrintStream ps = new PrintStream(new FileOutputStream("bbb.txt"),true,"UTF-8");// 写出数据ps.println(97);ps.print(true);ps.println();ps.printf("%s爱上了%s", "阿珍", "阿强");// 释放资源ps.close();}
}
字符打印流
构造方法
public PrintWriter(Write/File/String)
关联字节输出流、文件或文件路径public PrintWriter(String fileName, Charset charset)
指定字符集public PrintWriter(Write w, boolean autoflush)
可设置是否自动刷新public PrintWriter(OutputStream out, boolean autoFlush, Charset charset)
指定字符集且可设置是否自动刷新
注意事项:字符流底层有缓冲区,想要自动刷新需要开启
成员方法
public void write(...)
:常规方法,用于写出字节或字符串。public void println(Xxx xx)
:特有方法,可打印任意类型数据并换行。public void print(Xxx xx)
:特有方法,能打印任意类型数据,不换行。public void printf(String format, Object... args)
:特有方法,是带有占位符的打印语句 。
代码示例
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;public class printStream {public static void main(String[] args) throws IOException {// 创建对象PrintWriter pw = new PrintWriter(new FileWriter("bbb.txt"),true);// 写出数据pw.println("阿珍爱上了阿强!");pw.print("阿强爱上了阿珍");pw.printf("%s爱上了%s", "阿珍", "阿强");// 释放资源pw.close();}
}
打印流的应用场景
System.out.println("123");
平时用的这个输出语句的完整形式其实是以下样子:
PrintStream ps = System.out;
ps.println("123");
获取打印流的对象,此打印流在虚拟机启动的时候,由虚拟机创建,默认指向控制台
这是特殊的打印流,也叫系统中的标准输出流,是不能关闭的,因为在系统中是唯一的
解压缩/压缩流
解压缩流
ZipInputStream
是 Java 中用于读取 ZIP 文件的输入流,它继承自 InflaterInputStream
。
解压本质:把压缩包里面的每一个文件或者文件夹读取出来,按照层级拷贝到目的地当中,压缩包里面的每一个文件是一个 ZipEntry 对象,所以也可以说是把每一个 ZipEntry 对象按照层级拷贝到本地另一个文件夹中
构造方法:ZipInputStream(InputStream in)
:创建一个新的 ZipInputStream
,用于从指定的输入流中读取数据。
代码示例:
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;public class ZipStreamDemo {public static void main(String[] args) throws IOException {// 创建一个 File 表示要解压的压缩包File src = new File("C:\\aaa.zip");// 创建一个 File 表示解压的目的地File dest = new File("C:\\");unzip(src,dest);}//定义一个方法来解压文件public static void unzip(File src,File dest) throws IOException {// 解压本质:把压缩包里面的每一个文件或者文件夹读取出来,按照层级拷贝到目的地当中// 创建一个解压缩流用来读取压缩包中的数据ZipInputStream zip = new ZipInputStream(new FileInputStream(src));// 先获取到压缩包里面的每一个 zipentry 对象ZipEntry entry;while((entry = zip.getNextEntry()) != null) {System.out.println(entry);if(entry.isDirectory()) {// 文件夹:需要在目的地 dest 处创建一个同样的文件夹File file = new File(dest,entry.toString());file.mkdirs();}else {// 文件:需要读取到压缩包中的文件,并把它存放到目的地 dest 文件夹中(按照层级目录进行存放)FileOutputStream fos = new FileOutputStream(new File(dest,entry.toString()));int b;while((b = zip.read()) != -1) {fos.write(b);}fos.close();// 表示在压缩包中的一个文件处理完毕zip.closeEntry();}}zip.close();}
}
压缩流
ZipOutputStream
用于将数据压缩成 ZIP 格式,它继承自 DeflaterOutputStream
。
压缩本质:把每一个文件或者文件夹看成一个 ZipEntry 对象放到压缩包中
构造方法:ZipOutputStream(OutputStream out)
:创建一个新的 ZipOutputStream
,将压缩数据写入指定的输出流。
代码示例:
- 压缩一个文件
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class ZipStreamDemo {public static void main(String[] args) throws IOException {// 创建 File 对象表示要压缩的文件File src = new File("C:\\aaa.txt");// 创建 File 对象表示压缩包的位置File dest = new File("C:\\");toZip(src,dest);}/** 作用:压缩 * 参数一:表示要压缩的文件* 参数二:表示压缩包的位置* */public static void toZip(File src,File dest) throws IOException {// 创建压缩流关联压缩包ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(new File(dest,"aaa.zip")));// 创建 ZipEntry 对象,表示压缩包里的每一个文件和文件夹ZipEntry entry = new ZipEntry("aaa.txt");//把 ZipEntry 对象放到压缩包里zos.putNextEntry(entry);// 把 src 中的数据写到压缩包中FileInputStream fis = new FileInputStream(src);int b;while((b = fis.read()) != -1) {zos.write(b);}zos.closeEntry();zos.close();}
}
- 压缩一个文件夹
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class ZipStreamDemo {public static void main(String[] args) throws IOException {// 创建 File 对象表示要压缩的文件File src = new File("C:\\aaa");// 创建 File 对象表示压缩包放在哪里(压缩包的父路径)File destParent = src.getParentFile();// 创建 File 对象表示压缩包的位置File dest = new File(destParent,src.getName() + ".zip");// 创建压缩流关联压缩包ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(dest));toZip(src,zos,src.getName());zos.close();}/** 作用:获取 src 里面的每一个文件,变成 ZipEntry 对象,放入压缩包中* 参数一:数据源* 参数二:压缩流* 参数三:压缩包内部的路径* */public static void toZip(File src,ZipOutputStream zos,String name) throws IOException {//1.进入src文件夹File[] files = src.listFiles();//2.遍历数组for (File file : files) {if(file.isFile()){//3.判断-文件,变成ZipEntry对象,放入到压缩包当中ZipEntry entry = new ZipEntry(name + "\\" + file.getName());zos.putNextEntry(entry);//读取文件中的数据,写到压缩包FileInputStream fis = new FileInputStream(file);int b;while((b = fis.read()) != -1){zos.write(b);}fis.close();zos.closeEntry();}else{//4.判断-文件夹,递归toZip(file,zos, name + "\\" + file.getName());}}}
}
Commons-io 工具包
概述
Commons-io 是 apache 开源基金组织提供的一组有关 IO 操作的开源工具包
作用:提高 IO 流的开发效率
Commons-io 的工具包是以 “.jar” 为后缀,所以也叫 jar 包
Commons-io 使用步骤
- 在项目中创建名为 “lib” 的文件夹。
- 把 jar 包复制粘贴到 “lib” 文件夹。
- 右键点击 jar 包,选择 “Add as Library”,然后点击 “OK” 。
- 在类中导包使用。
Commons-io 常见方法
FileUtils 类 (文件/文件夹相关) | 说明 |
---|---|
static void copyFile(File srcFile, File destFile) | 复制文件 |
static void copyDirectory(File srcDir, File destDir) | 复制文件夹 |
static void copyDirectoryToDirectory(File srcDir, File destDir) | 复制文件夹 |
static void deleteDirectory(File directory) | 删除文件夹 |
static void cleanDirectory(File directory) | 清空文件夹 |
static String readFileToString(File file, Charset encoding) | 读取文件中的数据变成字符串 |
static void write(File file, CharSequence data, String encoding) | 写出数据 |
IOUtils 类(流相关) | 说明 |
---|---|
public static int copy(InputStream input, OutputStream output) | 复制文件 |
public static int copyLarge(Reader input, Writer output) | 复制大文件 |
public static String readLines(Reader input) | 读取数据 |
public static void write(String data, OutputStream output) | 写出数据 |
代码示例
import java.io.File;
import java.io.IOException;import org.apache.commons.io.FileUtils;public class commonsio {public static void main(String[] args) throws IOException {File src = new File("C:\\aaa.txt");File dest = new File("C:\\copy.txt");FileUtils.copyFile(src, dest);// 将原文件夹内的内容全部复制到新文件夹内File src = new File("C:\\aaa"); File dest = new File("C:\\bbb");FileUtils.copyDirectory(src, dest);// 将原文件夹直接复制到新文件夹内File src = new File("C:\\aaa"); File dest = new File("C:\\bbb");FileUtils.copyDirectoryToDirectory(src, dest);}
}
关于 Commons-io 工具包的更多使用方法,可以前往 【Apache Commons IO 工具包常用方法】
Hutool 工具包
Hutool 是一个开源的全能型 Java 工具类库,旨在简化 Java 开发中的常见操作,被称为 Java 开发的 “瑞士军刀”。以下是关于它的详细介绍:
- 特点:
- 模块化设计:被拆分成多个模块(如 core、crypto、http 等),开发者可按需引入,避免项目依赖臃肿。
- 简单易用:相比于 Java 原生工具类,其 API 更加简洁,能大幅减少开发者编写的代码量,降低开发成本。
- 功能全面:涵盖字符串、日期、文件操作、加密、HTTP 请求等开发中几乎所有常见的工具类操作,减少开发者重复造轮子。
- 常见工具类及功能:
- 文件操作:FileUtil 类可简化文件的读写、压缩解压、目录管理等操作,如一行代码读取文件内容或递归遍历目录。
- 日期处理:DateUtil 模块提供丰富的日期工具方法,可进行日期格式化、时间差计算、获取当前时间等操作 。
- 字符串处理:StrUtil 类让字符串判断、拼接、分割、过滤等操作变得简洁高效。
- 网络请求:HttpUtil 类支持快速发起 HTTP 请求,支持 GET、POST 等常见操作。
- 加密解密:SecureUtil 模块提供常见的加密解密算法(如 MD5、AES、RSA 等),满足处理用户密码或敏感数据时的安全需求。
- 应用场景:适用于企业级项目、微服务开发、第三方接口调用等多种场景,无论是数据处理、文件管理还是网络交互等方面都能发挥作用。
- 与其他工具库对比:和主要竞争对手 Apache Commons、Guava 相比,Hutool 功能覆盖范围最广;API 设计简洁,使用体验佳;社区较为活跃,更新频繁。不过,Apache Commons 模块化明确,Guava 在集合处理和函数式编程上表现出色,且这两者更新速度虽慢但稳定性更好。
- 使用注意事项:使用时需按需引入模块;由于版本更新较快,升级时要注意 API 的兼容性;部分复杂操作可能会带来一定性能开销,要根据实际场景权衡;在关键逻辑中,建议掌握 Java 原生工具类,避免过度依赖。
关于 Hutool 工具包的更多使用方法,可以前往 Hutool 官方 进行学习。
相关文章:
【Java】I/O 流篇 —— 打印流与压缩流
目录 打印流概述字节打印流构造方法成员方法代码示例 字符打印流构造方法成员方法代码示例 打印流的应用场景 解压缩/压缩流解压缩流压缩流 Commons-io 工具包概述Commons-io 使用步骤Commons-io 常见方法代码示例 Hutool 工具包 打印流 概述 分类:打印流一般是指…...
刷屏(0和1)
计算机有一个“好东西”,它就是2进制,虽然无法快速转换,but可以通过编程来实现。 附代码: #include <bits/stdc.h> using namespace std; int main() {int a,b,c;cout<<" …...
keil主题(vscode风格)
#修改global.prop文件,重新打开keil即可 # Keil uVision Global Properties File # This file is used to customize the appearance of the editor# Editor Font editor.font.nameConsolas editor.font.size10 editor.font.style0# Editor Colors editor.backgro…...
windows服务器更新jar包脚本
【需求】Java每次发布新的版本都需要先kill掉原来的服务,然后再启动新的包 有了这个脚本只需要把包替换掉,服务会自动kill 以6001 为例 完整的脚本如下 echo off REM 检查端口 6001 是否被占用 netstat -ano | findstr :6001 > nul IF %ERRORLE…...
前端实现OSS上传图片(Vue3+vant)
首先,下面这些信息从阿里云服务器OSS管理中获取 aliyun:oss:file:endpoint: "oss-cn-beijing.aliyuncs.com"keyid: "xxxxxxxxx"keysecret: "xxxxxxxxxxxx"bucketname: "xxxx"一、安装OSS npm install ali-oss 二、以下步…...
Vue.js 组件开发指南:实现、传值与优缺点分析
1. 组件的实现与使用 1.1 组件的定义 在 Vue.js 中,组件是独立的、可复用的 Vue 实例。每个组件可以包含自己的模板、逻辑和样式。 // 定义一个简单的组件 Vue.component(my-component, {template: <div>这是一个自定义组件</div> });1.2 组件的使用…...
vulnhub靶场之【kioptrix-5】靶机
前言 靶机:kioptrix-5,IP地址为192.168.10.10 攻击:kali,IP地址为192.168.10.6 都采用VMware虚拟机,网卡为桥接模式 这里需要注意,在靶机安装后,先把原本的网卡删除,重新添加一个…...
#渗透测试#批量漏洞挖掘#(0day)某智能终端操作平台前台存在通用SQL注入漏洞(CVE-2022-21047)
免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停…...
Linux系统中proc是做什么的?
在 Linux 系统中,/proc 是一个虚拟文件系统(Virtual Filesystem),它不对应实际的磁盘文件,而是内核在内存中动态生成的。/proc 文件系统提供了一种与内核数据结构交互的方式,它主要用于存放与系统运行状态、…...
el-table修改表格颜色
文章目录 一、el-table属性修改表格颜色1.1、header-row-class-name修改表头行颜色1.2、header-row-style修改表头样式1.3、row-class-name修改行颜色 二、el-table-column属性修改表格颜色2.1、class-name修改整列的颜色2.2、label-class-name修改列标题颜色 本文讲解vue修改e…...
014存储期(时间)
一、基本概念 C语言中,变量都是有一定的生存周期的,所谓生存周期指的是从分配到释放的时间间隔。为变量分配内存相当于变量的诞生,释放其内存相当于变量的死亡。从诞生到死亡就是一个变量的生命周期。 根据定义方式的不同,变量的…...
执行git操作时报错:`remote: [session-b8xxxda3] Access denied ...`解决方案
问题描述: 执行git push -u origin "master"时报错: > remote: [session-b849cda3] Access denied > fatal: unable to access https://gitee.com/jyunee/maibobo.git/: The requested URL returned error: 403表示没有权限访问远程仓库…...
Redis版本的EOL策略与升级路径(刷到别划走)
各位看官,刷到就点进来,大数据已经抓到你喽~😊 前言 在软件行业做服务端开发的我们,多多少少都会接触到Redis,用它来缓存数据、实现分布式锁等,相关八股文烂熟于心,但是往往会忽略具…...
算法题:数组中的第 K 个最大元素(中等难度)
一、题目 给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 示例 1: 输入:nums [3,2,1,5,6,4], k 2 输出:…...
进行性核上性麻痹患者的生活护理指南
进行性核上性麻痹是一种神经系统退行性疾病,合理的生活护理能有效改善症状,提高生活质量。 居家环境要安全。移除地面杂物,铺设防滑垫,安装扶手,降低跌倒风险。在浴室、厨房等湿滑区域要特别加强防护措施。建议在床边、…...
Python大战Java:AI时代的编程语言‘复仇者联盟‘能否换C位?
背景 当Java程序员在咖啡机前念叨’Python凭什么抢我饭碗’时,AI实验室里的Python工程师正用5行代码召唤出神经网络——这场编程语言的’权力的游戏’,胜负可能比你想象的更魔幻!" 一、茶水间里的战争:Java和Python的相爱相…...
SpringBoot AI + PgVector向量库 + Openai Embedding模型
Spring Boot 项目引入 下载仓库地址 <dependencyManagement><dependencies><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-bom</artifactId><version>${spring-ai.version}</version>&l…...
目标检测——数据处理
1. Mosaic 数据增强 Mosaic 数据增强步骤: (1). 选择四个图像: 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。 (2) 确定拼接位置: 设计一个新的画布(输入size的2倍),在指定范围内找出一个随机点(如…...
数据集笔记:新加坡LTA MRT 车站出口、路灯 等位置数据集
1 MRT 车站出口 data.gov.sg (geojson格式) 1.1 kml格式 data.gov.sg 2 路灯 data.govsg ——geojson data.gov.sg——kml 版本 3 道路摄像头数据集 data.gov.sg 4 自行车道网络 data.gov.sg 5 学校区域 data.gov.sg 6 自行车停车架ÿ…...
Highcharts 配置语法详解
Highcharts 配置语法详解 引言 Highcharts 是一个功能强大的图表库,广泛应用于数据可视化领域。本文将详细介绍 Highcharts 的配置语法,帮助您快速上手并制作出精美、实用的图表。 高级配置结构 Highcharts 的配置对象通常包含以下几部分:…...
Python 项目安全实战:工具应用、规范制定、数据防护与架构加固
Python 项目安全实战:工具应用、规范制定、数据防护与架构加固 本文聚焦 Python 项目安全,深入介绍安全工具如 Bandit、OWASP ZAP 的实战操作,涵盖对特定模块扫描及 Web 测试进阶应用。详细阐述团队如何制定并持续更新安全编码规范ÿ…...
linux ununtu通过nginx-1.6.2.tar.gz安装nginx并安装在自定义目录XXX下 的步骤
Ubuntu 下通过源码安装 Nginx 1.6.2 到自定义目录 /home/aot/nginx 的步骤 以下是将 Nginx 1.6.2 源码包离线安装到自定义目录的详细流程,包含依赖管理、编译配置和服务管理: 一、准备工作 1. 下载源码包和依赖(需联网环境准备)…...
《Python百练成仙》31-40章(不定时更新)
第卅一章 函数结丹def开紫府 罗酆山的鬼门关吞吐着猩红的变量阴风,每个风眼都涌动着作用域混乱的灵力乱流。叶军手握薛香遗留的丹田玉简,玉简表面浮现出残缺的函数符文: def 凝聚金丹(灵气):道基 灵气 * 0.618print(金丹品质) # 作用域外变…...
Python--内置模块和开发规范(上)
1. 内置模块 1.1 JSON 模块 核心功能 序列化:Python 数据类型 → JSON 字符串 import json data [{"id": 1, "name": "武沛齐"}, {"id": 2, "name": "Alex"}] json_str json.dumps(data, ensure_a…...
使用DeepSeek实现自动化编程:类的自动生成
目录 简述 1. 通过注释生成C类 1.1 模糊生成 1.2 把控细节,让结果更精准 1.3 让DeepSeek自动生成代码 2. 验证DeepSeek自动生成的代码 2.1 安装SQLite命令行工具 2.2 验证DeepSeek代码 3. 测试代码下载 简述 在现代软件开发中,自动化编程工具如…...
植物大战僵尸金铲铲版 v1.1.6(windows+安卓)
游戏简介 《植物大战僵尸金铲铲版》是由“古见xzz”、“对不起贱笑了”、“是怪哉吖”等联合开发的民间魔改版本,融合了原版塔防玩法与《金铲铲之战》的自走棋元素,属于非官方同人作品。 游戏特点 合成升星机制:三个相同低星植物可合成更高…...
LeetCode 热题 100_寻找两个正序数组的中位数(68_4_困难_C++)(二分查找)(先合并再挑选中位数;划分数组(二分查找))
LeetCode 热题 100_寻找两个正序数组的中位数(68_4) 题目描述:输入输出样例:题解:解题思路:思路一(先合并再挑选中位数):思路二(划分数组(二分查找…...
酒店管理系统(代码+数据库+LW)
摘 要 时代的发展带来了巨大的生活改变,很多事务从传统手工管理转变为自动管理。自动管理是利用科技的发展开发的新型管理系统,这类管理系统可以帮助人完成基本的繁琐的反复工作。酒店是出门的必需品,无论出差还是旅游都需要酒店的服务。由…...
关于C/C++的输入和输出
目录 一、C语言中的scanf 有关scanf()的例子 二、C语言中的printf 有关printf()的例子 三、C中的cin、cout 四、字符的输入 1、cin.get() 2、cin.get() 3、cin.getline() 4、getline() 5、getchar() 五、string类型字符串长度 1、length() 2、size() 一、C语言中…...
袋鼠数据库工具 6.4 AI 版已上线
袋鼠数据库工具 6.4 AI 版已于 2025 年 2 月 26 日上线1。以下是该版本的一些新特性1: 地图支持:支持坐标定位并支持缩放动画;支持路线图,可在路线位置之间跳转;支持图层切换、标记和路线图图层切换;支持新…...
【AGI】DeepSeek开源周:The whale is making waves!
DeepSeek开源周:The whale is making waves! 思维火花引言一、DeepSeek模型体系的技术演进1. 通用语言模型:DeepSeek-V3系列2. 推理优化模型:DeepSeek-R1系列3. 多模态模型:Janus系列 二、开源周三大工具库的技术解析1…...
【无人机】无人机飞行日志下载及分析,飞行日志分析软件的使用
目录 一、飞行日志下载 1.1 通过地面站下载 1.1.1 QGroundControl(QGC)地面站 1.1.2 Mission Planner 地面站 1.2 通过内存卡读卡器下载 1.3 通过数传模块下载(数传日志) 二、飞行日志分析 2.1 使用 Flight Review 分析 …...
【朝夕教育】《鸿蒙原生应用开发从零基础到多实战》003-TypeScript 中的类
标题详情作者简介愚公搬代码头衔华为云特约编辑,华为云云享专家,华为开发者专家,华为产品云测专家,CSDN博客专家,CSDN商业化专家,阿里云专家博主,阿里云签约作者,腾讯云优秀博主&…...
Java并发编程之可见性、原子性和有序性
引言 CPU缓存与内存产生的一致性问题(可见性) CPU时间片切换产生的原子性问题 CPU指令编译优化产生的有序性问题 并发编程问题的根源 CPU、内存、I/O设备三者速度差异一直是 核心矛盾 三者速度差异可形象描述为:天上一天(CPU),…...
99分巧克力
99分巧克力 ⭐️难度:中等 🌟考点:二分 2017省赛真题 📖 📚 import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc new Scanner(System.in);int n sc.nextInt();i…...
阿里重磅模型深夜开源;DeepSeek宣布开源DeepGEMM;微软开源多模态AI Agent基础模型Magma...|网易数智日报
阿里重磅模型深夜开源:表现超越Sora、Pika,消费级显卡就能跑 2月26日,25日深夜阿里云视频生成大模型万相2.1(Wan)正式宣布开源,此次开源采用Apache2.0协议,14B和1.3B两个参数规格的全部推理代码…...
WPF10-绑定属性
目录 1. WPF属性系统1.1. CLR属性(CLR Properties)1.2. 相关属性(Related Properties)1.3. 附加属性(Attached Properties)1.4. 依赖属性(Dependency Properties)2. 依赖属性2.1. 定义2.2. 应用场景2.3. 理解2.3.1. 初识依赖属性2.3.2. 自定义依赖属性2.3.3. 使用依赖属…...
Python PDF文件拆分-详解
目录 使用工具 将PDF按页数拆分 将PDF的每一页拆分为单独的文件 将PDF按指定页数拆分 根据页码范围拆分PDF 根据指定内容拆分PDF 将PDF的一页拆分为多页 在日常生活中,我们常常会遇到大型的PDF文件,这些文件可能难以发送、管理和查阅。将PDF拆分成…...
ollama本地部署DeepSeek-R1大模型使用前端JS调用的详细流程
以下是关于如何在本地部署 DeepSeek-R1 大模型(通过 Ollama),并使用前端 JavaScript 调用其功能的详细流程。 前提条件 硬件要求: 建议至少 16GB RAM(运行较小模型如 1.5B 或 7B 参数版本),如果…...
Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系
一、前言 在搭建SpringCloud项目环境架构的时候,需要选择SpringBoot和SpringCloud进行兼容的版本号,因此对于选择SpringBoot版本与SpringCloud版本的对应关系很重要,如果版本关系不对应,常见的会遇见项目启动不起来,怪…...
初识SQL
SQL 定义:SQL(Structured Query Language,结构化查询语言)是一种标准化的数据库操作语言,广泛用于关系数据库管理系统(RDBMS),如 MySQL、PostgreSQL 等。它支持数据的定义࿰…...
12_Pandas时序数据(上)
固定时间 时间的表示 固定时间是指一个时间点。固定时间是时序数据的基础,一个固定时间带有丰富的信息,如年份、周几、月份、季度等。 Python的官网库datetime支持创建和处理时间: datetime.now() # 当前时间 datetime(2025,2,26,12) # 指…...
当我删除word文件时无法删除,提示:操作无法完成,因为已在Microsoft Word中打开
现象: 查看电脑桌面下方的任务栏,明明已经关闭了WPS和WORD软件,但是打开word文档时还是提示: 解决方法步骤: 1、按一下键盘上的ctrl Shift Esc 键打开任务管理器 2、在进程中找到如下: 快速找到的方法…...
0x03 http协议和分层架构
HTTP协议 简介 Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议:面向连接,安全基于请求-响应模型:一次请求对应一次响应HTTP协议是无状态的协议ÿ…...
JavaScript系列03-异步编程全解析
本文介绍了异步相关的内容,包括: 回调函数与回调地狱Promise详解async/await语法Generator函数事件循环机制异步编程最佳实践 1、回调函数与回调地狱 JavaScript最初是为处理网页交互而设计的语言,异步编程是其核心特性之一。最早的异步编…...
深度解读 AMS1117:从电气参数到应用电路的全面剖析
在电子设备的电源管理领域,线性稳压器扮演着至关重要的角色,而 AMS1117 凭借其出色的性能和广泛的适用性,成为众多工程师的热门选择。本文将依据相关资料,对 AMS1117 的特性、应用、电气参数等方面进行详细解读。 一、功能特性概…...
深入理解Tomcat与Web应用部署:C/S与B/S架构下的实践指南
在当今的互联网时代,Web应用的开发与部署是软件开发领域的重要组成部分。无论是传统的C/S架构,还是现代广泛应用的B/S架构,了解它们的优缺点以及如何高效部署Web应用是每个开发者都需要掌握的技能。本文将深入探讨C/S与B/S架构的区别…...
XML 编辑器:全面指南与最佳实践
XML 编辑器:全面指南与最佳实践 引言 XML(可扩展标记语言)编辑器是处理XML文件的关键工具,对于开发人员、系统管理员以及任何需要处理XML数据的人来说至关重要。本文将全面介绍XML编辑器的概念、功能、选择标准以及最佳实践,旨在帮助读者了解如何选择和使用合适的XML编辑…...
Python实现GO鹅优化算法优化BP神经网络回归模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 传统BP神经网络的局限性:BP(Back Propagation)神经网络作为一种…...
如何配置虚拟机的IP上网
要配置虚拟机的IP地址以便上网,你可以按照以下步骤操作: 打开虚拟机软件,确保虚拟机的网络设置为“桥接模式”或“NAT模式”,这样虚拟机可以与物理网络连接。 在虚拟机操作系统中,打开网络设置界面,一般在…...