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

【Java】I/O 流篇 —— 打印流与压缩流

目录

  • 打印流
    • 概述
    • 字节打印流
      • 构造方法
      • 成员方法
      • 代码示例
    • 字符打印流
      • 构造方法
      • 成员方法
      • 代码示例
    • 打印流的应用场景
  • 解压缩/压缩流
    • 解压缩流
    • 压缩流
  • Commons-io 工具包
    • 概述
    • Commons-io 使用步骤
    • Commons-io 常见方法
    • 代码示例
  • Hutool 工具包

打印流

概述

分类:打印流一般是指字节打印流 PrintStream、字符打印流 PrintWriter 两个类,打印流只有输出流没有输入流

特点:

  1. 打印流只操作文件的目的地,不操作数据源
  2. 特有的写出方法可以实现数据原样写出
    • 文件中是 97,打印 97
    • 文件中是 true,打印 true
  3. 特有的写出方法,可以实现自动刷新,自动换行
    • 打印一次数据 = 写出 + 换行 + 刷新

字节打印流

构造方法

  • 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,将压缩数据写入指定的输出流。

代码示例:

  1. 压缩一个文件
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();}
}
  1. 压缩一个文件夹
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 使用步骤

  1. 在项目中创建名为 “lib” 的文件夹。
  2. 把 jar 包复制粘贴到 “lib” 文件夹。
  3. 右键点击 jar 包,选择 “Add as Library”,然后点击 “OK” 。
  4. 在类中导包使用。

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)

计算机有一个“好东西”&#xff0c;它就是2进制&#xff0c;虽然无法快速转换&#xff0c;but可以通过编程来实现。 附代码&#xff1a; #include <bits/stdc.h> using namespace std; int main() {int a,b,c;cout<<" …...

keil主题(vscode风格)

#修改global.prop文件&#xff0c;重新打开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掉原来的服务&#xff0c;然后再启动新的包 有了这个脚本只需要把包替换掉&#xff0c;服务会自动kill 以6001 为例 完整的脚本如下 echo off REM 检查端口 6001 是否被占用 netstat -ano | findstr :6001 > nul IF %ERRORLE…...

前端实现OSS上传图片(Vue3+vant)

首先&#xff0c;下面这些信息从阿里云服务器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 中&#xff0c;组件是独立的、可复用的 Vue 实例。每个组件可以包含自己的模板、逻辑和样式。 // 定义一个简单的组件 Vue.component(my-component, {template: <div>这是一个自定义组件</div> });1.2 组件的使用…...

vulnhub靶场之【kioptrix-5】靶机

前言 靶机&#xff1a;kioptrix-5&#xff0c;IP地址为192.168.10.10 攻击&#xff1a;kali&#xff0c;IP地址为192.168.10.6 都采用VMware虚拟机&#xff0c;网卡为桥接模式 这里需要注意&#xff0c;在靶机安装后&#xff0c;先把原本的网卡删除&#xff0c;重新添加一个…...

#渗透测试#批量漏洞挖掘#(0day)某智能终端操作平台前台存在通用SQL注入漏洞(CVE-2022-21047)

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

Linux系统中proc是做什么的?

在 Linux 系统中&#xff0c;/proc 是一个虚拟文件系统&#xff08;Virtual Filesystem&#xff09;&#xff0c;它不对应实际的磁盘文件&#xff0c;而是内核在内存中动态生成的。/proc 文件系统提供了一种与内核数据结构交互的方式&#xff0c;它主要用于存放与系统运行状态、…...

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语言中&#xff0c;变量都是有一定的生存周期的&#xff0c;所谓生存周期指的是从分配到释放的时间间隔。为变量分配内存相当于变量的诞生&#xff0c;释放其内存相当于变量的死亡。从诞生到死亡就是一个变量的生命周期。 根据定义方式的不同&#xff0c;变量的…...

执行git操作时报错:`remote: [session-b8xxxda3] Access denied ...`解决方案

问题描述&#xff1a; 执行git push -u origin "master"时报错&#xff1a; > remote: [session-b849cda3] Access denied > fatal: unable to access https://gitee.com/jyunee/maibobo.git/: The requested URL returned error: 403表示没有权限访问远程仓库…...

Redis版本的EOL策略与升级路径(刷到别划走)

各位看官&#xff0c;刷到就点进来&#xff0c;大数据已经抓到你喽&#xff5e;&#x1f60a; 前言 在软件行业做服务端开发的我们&#xff0c;多多少少都会接触到Redis&#xff0c;用它来缓存数据、实现分布式锁等&#xff0c;相关八股文烂熟于心&#xff0c;但是往往会忽略具…...

算法题:数组中的第 K 个最大元素(中等难度)

一、题目 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 示例 1&#xff1a; 输入&#xff1a;nums [3,2,1,5,6,4], k 2 输出&#xff1a;…...

进行性核上性麻痹患者的生活护理指南

进行性核上性麻痹是一种神经系统退行性疾病&#xff0c;合理的生活护理能有效改善症状&#xff0c;提高生活质量。 居家环境要安全。移除地面杂物&#xff0c;铺设防滑垫&#xff0c;安装扶手&#xff0c;降低跌倒风险。在浴室、厨房等湿滑区域要特别加强防护措施。建议在床边、…...

Python大战Java:AI时代的编程语言‘复仇者联盟‘能否换C位?

背景 当Java程序员在咖啡机前念叨’Python凭什么抢我饭碗’时&#xff0c;AI实验室里的Python工程师正用5行代码召唤出神经网络——这场编程语言的’权力的游戏’&#xff0c;胜负可能比你想象的更魔幻&#xff01;" 一、茶水间里的战争&#xff1a;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). 选择四个图像&#xff1a; 从数据集中随机选择四张图像。这四张图像是用来组合成一个新图像的基础。 (2) 确定拼接位置&#xff1a; 设计一个新的画布(输入size的2倍)&#xff0c;在指定范围内找出一个随机点&#xff08;如…...

数据集笔记:新加坡LTA MRT 车站出口、路灯 等位置数据集

1 MRT 车站出口 data.gov.sg &#xff08;geojson格式&#xff09; 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 自行车停车架&#xff…...

Highcharts 配置语法详解

Highcharts 配置语法详解 引言 Highcharts 是一个功能强大的图表库&#xff0c;广泛应用于数据可视化领域。本文将详细介绍 Highcharts 的配置语法&#xff0c;帮助您快速上手并制作出精美、实用的图表。 高级配置结构 Highcharts 的配置对象通常包含以下几部分&#xff1a…...

Python 项目安全实战:工具应用、规范制定、数据防护与架构加固

Python 项目安全实战&#xff1a;工具应用、规范制定、数据防护与架构加固 本文聚焦 Python 项目安全&#xff0c;深入介绍安全工具如 Bandit、OWASP ZAP 的实战操作&#xff0c;涵盖对特定模块扫描及 Web 测试进阶应用。详细阐述团队如何制定并持续更新安全编码规范&#xff…...

linux ununtu通过nginx-1.6.2.tar.gz安装nginx并安装在自定义目录XXX下 的步骤

Ubuntu 下通过源码安装 Nginx 1.6.2 到自定义目录 /home/aot/nginx 的步骤 以下是将 Nginx 1.6.2 源码包离线安装到自定义目录的详细流程&#xff0c;包含依赖管理、编译配置和服务管理&#xff1a; 一、准备工作 1. 下载源码包和依赖&#xff08;需联网环境准备&#xff09;…...

《Python百练成仙》31-40章(不定时更新)

第卅一章 函数结丹def开紫府 罗酆山的鬼门关吞吐着猩红的变量阴风&#xff0c;每个风眼都涌动着作用域混乱的灵力乱流。叶军手握薛香遗留的丹田玉简&#xff0c;玉简表面浮现出残缺的函数符文&#xff1a; def 凝聚金丹(灵气):道基 灵气 * 0.618print(金丹品质) # 作用域外变…...

Python--内置模块和开发规范(上)

1. 内置模块 1.1 JSON 模块 核心功能 序列化&#xff1a;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 把控细节&#xff0c;让结果更精准 1.3 让DeepSeek自动生成代码 2. 验证DeepSeek自动生成的代码 2.1 安装SQLite命令行工具 2.2 验证DeepSeek代码 3. 测试代码下载 简述 在现代软件开发中&#xff0c;自动化编程工具如…...

植物大战僵尸金铲铲版 v1.1.6(windows+安卓)

游戏简介 《植物大战僵尸金铲铲版》是由“古见xzz”、“对不起贱笑了”、“是怪哉吖”等联合开发的民间魔改版本&#xff0c;融合了原版塔防玩法与《金铲铲之战》的自走棋元素&#xff0c;属于非官方同人作品。 游戏特点 合成升星机制&#xff1a;三个相同低星植物可合成更高…...

LeetCode 热题 100_寻找两个正序数组的中位数(68_4_困难_C++)(二分查找)(先合并再挑选中位数;划分数组(二分查找))

LeetCode 热题 100_寻找两个正序数组的中位数&#xff08;68_4&#xff09; 题目描述&#xff1a;输入输出样例&#xff1a;题解&#xff1a;解题思路&#xff1a;思路一&#xff08;先合并再挑选中位数&#xff09;&#xff1a;思路二&#xff08;划分数组&#xff08;二分查找…...

酒店管理系统(代码+数据库+LW)

摘 要 时代的发展带来了巨大的生活改变&#xff0c;很多事务从传统手工管理转变为自动管理。自动管理是利用科技的发展开发的新型管理系统&#xff0c;这类管理系统可以帮助人完成基本的繁琐的反复工作。酒店是出门的必需品&#xff0c;无论出差还是旅游都需要酒店的服务。由…...

关于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&#xff1a; 地图支持&#xff1a;支持坐标定位并支持缩放动画&#xff1b;支持路线图&#xff0c;可在路线位置之间跳转&#xff1b;支持图层切换、标记和路线图图层切换&#xff1b;支持新…...

【AGI】DeepSeek开源周:The whale is making waves!

DeepSeek开源周&#xff1a;The whale is making waves&#xff01; 思维火花引言一、DeepSeek模型体系的技术演进1. 通用语言模型&#xff1a;DeepSeek-V3系列2. 推理优化模型&#xff1a;DeepSeek-R1系列3. 多模态模型&#xff1a;Janus系列 二、开源周三大工具库的技术解析1…...

【无人机】无人机飞行日志下载及分析,飞行日志分析软件的使用

目录 一、飞行日志下载 1.1 通过地面站下载 1.1.1 QGroundControl&#xff08;QGC&#xff09;地面站 1.1.2 Mission Planner 地面站 1.2 通过内存卡读卡器下载 1.3 通过数传模块下载&#xff08;数传日志&#xff09; 二、飞行日志分析 2.1 使用 Flight Review 分析 …...

【朝夕教育】《鸿蒙原生应用开发从零基础到多实战》003-TypeScript 中的类

标题详情作者简介愚公搬代码头衔华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xff0c;阿里云签约作者&#xff0c;腾讯云优秀博主&…...

Java并发编程之可见性、原子性和有序性

引言 CPU缓存与内存产生的一致性问题&#xff08;可见性&#xff09; CPU时间片切换产生的原子性问题 CPU指令编译优化产生的有序性问题 并发编程问题的根源 CPU、内存、I/O设备三者速度差异一直是 核心矛盾 三者速度差异可形象描述为&#xff1a;天上一天(CPU)&#xff0c;…...

99分巧克力

99分巧克力 ⭐️难度&#xff1a;中等 &#x1f31f;考点&#xff1a;二分 2017省赛真题 &#x1f4d6; &#x1f4da; 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...|网易数智日报

阿里重磅模型深夜开源&#xff1a;表现超越Sora、Pika&#xff0c;消费级显卡就能跑 2月26日&#xff0c;25日深夜阿里云视频生成大模型万相2.1&#xff08;Wan&#xff09;正式宣布开源&#xff0c;此次开源采用Apache2.0协议&#xff0c;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的一页拆分为多页 在日常生活中&#xff0c;我们常常会遇到大型的PDF文件&#xff0c;这些文件可能难以发送、管理和查阅。将PDF拆分成…...

ollama本地部署DeepSeek-R1大模型使用前端JS调用的详细流程

以下是关于如何在本地部署 DeepSeek-R1 大模型&#xff08;通过 Ollama&#xff09;&#xff0c;并使用前端 JavaScript 调用其功能的详细流程。 前提条件 硬件要求&#xff1a; 建议至少 16GB RAM&#xff08;运行较小模型如 1.5B 或 7B 参数版本&#xff09;&#xff0c;如果…...

Spring Cloud Alibaba与Spring Boot、Spring Cloud版本对应关系

一、前言 在搭建SpringCloud项目环境架构的时候&#xff0c;需要选择SpringBoot和SpringCloud进行兼容的版本号&#xff0c;因此对于选择SpringBoot版本与SpringCloud版本的对应关系很重要&#xff0c;如果版本关系不对应&#xff0c;常见的会遇见项目启动不起来&#xff0c;怪…...

初识SQL

SQL 定义&#xff1a;SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种标准化的数据库操作语言&#xff0c;广泛用于关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;如 MySQL、PostgreSQL 等。它支持数据的定义&#xff0…...

12_Pandas时序数据(上)

固定时间 时间的表示 固定时间是指一个时间点。固定时间是时序数据的基础&#xff0c;一个固定时间带有丰富的信息&#xff0c;如年份、周几、月份、季度等。 Python的官网库datetime支持创建和处理时间&#xff1a; datetime.now() # 当前时间 datetime(2025,2,26,12) # 指…...

当我删除word文件时无法删除,提示:操作无法完成,因为已在Microsoft Word中打开

现象&#xff1a; 查看电脑桌面下方的任务栏&#xff0c;明明已经关闭了WPS和WORD软件&#xff0c;但是打开word文档时还是提示&#xff1a; 解决方法步骤&#xff1a; 1、按一下键盘上的ctrl Shift Esc 键打开任务管理器 2、在进程中找到如下&#xff1a; 快速找到的方法…...

0x03 http协议和分层架构

HTTP协议 简介 Hyper Text Transfer Protocol&#xff0c;超文本传输协议&#xff0c;规定了浏览器和服务器之间数据传输的规则 http协议基于TCP协议&#xff1a;面向连接&#xff0c;安全基于请求-响应模型&#xff1a;一次请求对应一次响应HTTP协议是无状态的协议&#xff…...

JavaScript系列03-异步编程全解析

本文介绍了异步相关的内容&#xff0c;包括&#xff1a; 回调函数与回调地狱Promise详解async/await语法Generator函数事件循环机制异步编程最佳实践 1、回调函数与回调地狱 JavaScript最初是为处理网页交互而设计的语言&#xff0c;异步编程是其核心特性之一。最早的异步编…...

深度解读 AMS1117:从电气参数到应用电路的全面剖析

在电子设备的电源管理领域&#xff0c;线性稳压器扮演着至关重要的角色&#xff0c;而 AMS1117 凭借其出色的性能和广泛的适用性&#xff0c;成为众多工程师的热门选择。本文将依据相关资料&#xff0c;对 AMS1117 的特性、应用、电气参数等方面进行详细解读。 一、功能特性概…...

深入理解Tomcat与Web应用部署:C/S与B/S架构下的实践指南

在当今的互联网时代&#xff0c;Web应用的开发与部署是软件开发领域的重要组成部分。无论是传统的C/S架构&#xff0c;还是现代广泛应用的B/S架构&#xff0c;了解它们的优缺点以及如何高效部署Web应用是每个开发者都需要掌握的技能。本文将深入探讨C/S与B/S架构的区别&#xf…...

XML 编辑器:全面指南与最佳实践

XML 编辑器:全面指南与最佳实践 引言 XML(可扩展标记语言)编辑器是处理XML文件的关键工具,对于开发人员、系统管理员以及任何需要处理XML数据的人来说至关重要。本文将全面介绍XML编辑器的概念、功能、选择标准以及最佳实践,旨在帮助读者了解如何选择和使用合适的XML编辑…...

Python实现GO鹅优化算法优化BP神经网络回归模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 传统BP神经网络的局限性&#xff1a;BP&#xff08;Back Propagation&#xff09;神经网络作为一种…...

如何配置虚拟机的IP上网

要配置虚拟机的IP地址以便上网&#xff0c;你可以按照以下步骤操作&#xff1a; 打开虚拟机软件&#xff0c;确保虚拟机的网络设置为“桥接模式”或“NAT模式”&#xff0c;这样虚拟机可以与物理网络连接。 在虚拟机操作系统中&#xff0c;打开网络设置界面&#xff0c;一般在…...