学习c#的第十八天
目录
C# 文件的输入与输出
C# I/O 类
FileStream 类
文本文件的读写
StreamReader 类
StreamWriter 类
实例
二进制文件的读写
BinaryReader 类
BinaryWriter 类
实例
Windows 文件系统的操作
DirectoryInfo 类
FileInfo 类
实例
C# 文件的输入与输出
一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合。当打开文件进行读写时,它变成一个 流。
从根本上说,流是通过通信路径传递的字节序列。有两个主要的流:输入流 和 输出流。输入流用于从文件读取数据(读操作),输出流用于向文件写入数据(写操作)。
C# I/O 类
System.IO 命名空间有各种不同的类,用于执行各种文件操作,如创建和删除文件、读取或写入文件,关闭文件等。
下表列出了一些 System.IO 命名空间中常用的非抽象类:
| I/O 类 | 描述 |
|---|---|
| BinaryReader | 从二进制流读取原始数据。 |
| BinaryWriter | 以二进制格式写入原始数据。 |
| BufferedStream | 字节流的临时存储。 |
| Directory | 有助于操作目录结构。 |
| DirectoryInfo | 用于对目录执行操作。 |
| DriveInfo | 提供驱动器的信息。 |
| File | 有助于处理文件。 |
| FileInfo | 用于对文件执行操作。 |
| FileStream | 用于文件中任何位置的读写。 |
| MemoryStream | 用于随机访问存储在内存中的数据流。 |
| Path | 对路径信息执行操作。 |
| StreamReader | 用于从字节流中读取字符。 |
| StreamWriter | 用于向一个流中写入字符。 |
| StringReader | 用于读取字符串缓冲区。 |
| StringWriter | 用于写入字符串缓冲区。 |
FileStream 类
FileStream 类是位于 System.IO 命名空间中的一个重要类,它主要用于文件的读写操作以及文件的关闭。作为 System.IO 命名空间中的一部分,FileStream 类继承自抽象类 Stream,这意味着它包含了许多用于处理字节流的方法和属性。
您需要创建一个 FileStream 对象来创建一个新的文件,或打开一个已有的文件。创建 FileStream 对象的语法如下:
FileStream <object_name> = new FileStream( <file_name>,
<FileMode Enumerator>, <FileAccess Enumerator>, <FileShare Enumerator>);
例如,创建一个 FileStream 对象 F 来读取名为 sample.txt 的文件:
FileStream F = new FileStream("sample.txt", FileMode.Open, FileAccess.Read, FileShare.Read);
| 参数 | 描述 |
|---|---|
| FileMode | FileMode 枚举定义了各种打开文件的方法。FileMode 枚举的成员有:
|
| FileAccess | FileAccess 枚举的成员有:
|
| FileShare | FileShare 枚举的成员有:
|
下面是一个简单的示例,
using System;
using System.IO;class Program
{static void Main(){// 文件路径string filePath = "D:/example.txt";// 使用 Create 模式打开文件,如果文件已存在则覆盖,不存在则创建新文件using (FileStream fileStream = new FileStream(filePath, FileMode.Create, FileAccess.Write)){// 准备要写入文件的内容string content = "你好,文件流!这是一个使用C#写入文件的示例。";// 将字符串转换为字节数组byte[] data = System.Text.Encoding.UTF8.GetBytes(content);// 向文件中写入数据fileStream.Write(data, 0, data.Length);}// 使用 Open 模式打开文件,以只读方式访问using (FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read)){// 准备一个缓冲区来存储从文件中读取的数据byte[] buffer = new byte[1024];// 从文件中读取数据int bytesRead = fileStream.Read(buffer, 0, buffer.Length);// 将读取到的字节数组转换为字符串string result = System.Text.Encoding.UTF8.GetString(buffer, 0, bytesRead);// 输出从文件中读取的内容Console.WriteLine("文件内容: " + result);}}
}
在这个示例中,我们首先使用 FileStream 创建了一个新文件,并使用 FileMode.Create 和 FileAccess.Write 参数进行了写入操作。然后使用相同的文件路径和 FileMode.Open、FileAccess.Read 参数创建了另一个 FileStream 对象,以只读方式访问文件,并从中读取数据。最后,将读取到的数据转换为字符串并输出。
通过适当设置 FileMode 和 FileAccess 参数,可以根据需求对文件进行不同的操作。同时,务必在使用完毕后关闭文件流,以确保资源得到正确释放。
文本文件的读写
StreamReader 和 StreamWriter 类用于文本文件的数据读写。这些类从抽象基类 Stream 继承,Stream 支持文件流的字节读写。
StreamReader 类
StreamReader 类继承自抽象基类 TextReader,表示阅读器读取一系列字符。
下表列出了 StreamReader 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public override void Close() 关闭 StreamReader 对象和基础流,并释放任何与读者相关的系统资源。 |
| 2 | public override int Peek() 返回下一个可用的字符,但不使用它。 |
| 3 | public override int Read() 从输入流中读取下一个字符,并把字符位置往前移一个字符。 |
如需查看完整的方法列表,请访问微软的 C# 文档。
StreamWriter 类
StreamWriter 类继承自抽象类 TextWriter,表示编写器写入一系列字符。
下表列出了 StreamWriter 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public override void Close() 关闭当前的 StreamWriter 对象和基础流。 |
| 2 | public override void Flush() 清理当前编写器的所有缓冲区,使得所有缓冲数据写入基础流。 |
| 3 | public virtual void Write(bool value) 把一个布尔值的文本表示形式写入到文本字符串或流。(继承自 TextWriter。) |
| 4 | public override void Write( char value ) 把一个字符写入到流。 |
| 5 | public virtual void Write( decimal value ) 把一个十进制值的文本表示形式写入到文本字符串或流。 |
| 6 | public virtual void Write( double value ) 把一个 8 字节浮点值的文本表示形式写入到文本字符串或流。 |
| 7 | public virtual void Write( int value ) 把一个 4 字节有符号整数的文本表示形式写入到文本字符串或流。 |
| 8 | public override void Write( string value ) 把一个字符串写入到流。 |
| 9 | public virtual void WriteLine() 把行结束符写入到文本字符串或流。 |
如需查看完整的方法列表,请访问微软的 C# 文档。
实例
using System;
using System.IO;class Program
{static void Main(){string filePath = "D:/dexample.txt";// 使用 StreamWriter 写入文件using (StreamWriter writer = new StreamWriter(filePath)){writer.WriteLine("你好!这是一个使用C#写入文件的示例。");writer.WriteLine("这是另一行文字。");}// 使用 StreamReader 读取文件using (StreamReader reader = new StreamReader(filePath)){string line;while ((line = reader.ReadLine()) != null){Console.WriteLine(line);}}}
}
在这个示例中,我们首先使用 StreamWriter 打开文件并写入了两行文本。然后使用 StreamReader 打开同一个文件,并逐行读取其中的内容,并将每行内容输出到控制台。
使用 StreamWriter 和 StreamReader 可以实现更灵活和复杂的文件操作,比如逐行读取、追加内容、指定编码等。同时,using 关键字确保在使用完成后正确地关闭文件流,释放资源。
二进制文件的读写
BinaryReader 和 BinaryWriter 类用于二进制文件的读写。
BinaryReader 类
BinaryReader 类用于从文件读取二进制数据。一个 BinaryReader 对象通过向它的构造函数传递 FileStream 对象而被创建。
下表列出了 BinaryReader 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public override void Close() 关闭 BinaryReader 对象和基础流。 |
| 2 | public virtual int Read() 从基础流中读取字符,并把流的当前位置往前移。 |
| 3 | public virtual bool ReadBoolean() 从当前流中读取一个布尔值,并把流的当前位置往前移一个字节。 |
| 4 | public virtual byte ReadByte() 从当前流中读取下一个字节,并把流的当前位置往前移一个字节。 |
| 5 | public virtual byte[] ReadBytes( int count ) 从当前流中读取指定数目的字节到一个字节数组中,并把流的当前位置往前移指定数目的字节。 |
| 6 | public virtual char ReadChar() 从当前流中读取下一个字节,并把流的当前位置按照所使用的编码和从流中读取的指定的字符往前移。 |
| 7 | public virtual char[] ReadChars( int count ) 从当前流中读取指定数目的字节,在一个字符数组中返回数组,并把流的当前位置按照所使用的编码和从流中读取的指定的字符往前移。 |
| 8 | public virtual double ReadDouble() 从当前流中读取一个 8 字节浮点值,并把流的当前位置往前移八个字节。 |
| 9 | public virtual int ReadInt32() 从当前流中读取一个 4 字节有符号整数,并把流的当前位置往前移四个字节。 |
| 10 | public virtual string ReadString() 从当前流中读取一个字符串。字符串以长度作为前缀,同时编码为一个七位的整数。 |
如需查看完整的方法列表,请访问微软的 C# 文档。
BinaryWriter 类
BinaryWriter 类用于向文件写入二进制数据。一个 BinaryWriter 对象通过向它的构造函数传递 FileStream 对象而被创建。
下表列出了 BinaryWriter 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public override void Close() 关闭 BinaryWriter 对象和基础流。 |
| 2 | public virtual void Flush() 清理当前编写器的所有缓冲区,使得所有缓冲数据写入基础设备。 |
| 3 | public virtual long Seek( int offset, SeekOrigin origin ) 设置当前流内的位置。 |
| 4 | public virtual void Write( bool value ) 把一个单字节的布尔值写入到当前流中,0 表示 false,1 表示 true。 |
| 5 | public virtual void Write( byte value ) 把一个无符号字节写入到当前流中,并把流的位置往前移一个字节。 |
| 6 | public virtual void Write( byte[] buffer ) 把一个字节数组写入到基础流中。 |
| 7 | public virtual void Write( char ch ) 把一个 Unicode 字符写入到当前流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。 |
| 8 | public virtual void Write( char[] chars ) 把一个字符数组写入到当前流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。 |
| 9 | public virtual void Write( double value ) 把一个 8 字节浮点值写入到当前流中,并把流位置往前移八个字节。 |
| 10 | public virtual void Write( int value ) 把一个 4 字节有符号整数写入到当前流中,并把流位置往前移四个字节。 |
| 11 | public virtual void Write( string value ) 把一个以长度为前缀的字符串写入到 BinaryWriter 的当前编码的流中,并把流的当前位置按照所使用的编码和要写入到流中的指定的字符往前移。 |
如需查看完整的方法列表,请访问微软的 C# 文档。
实例
using System;
using System.IO;class Program
{static void Main(){string filePath = "D:/binaryfile.dat";// 使用 BinaryWriter 写入二进制文件using (BinaryWriter writer = new BinaryWriter(File.Open(filePath, FileMode.Create))){double value1 = 3.14159;int value2 = 42;writer.Write(value1);writer.Write(value2);}// 使用 BinaryReader 读取二进制文件using (BinaryReader reader = new BinaryReader(File.Open(filePath, FileMode.Open))){double readValue1 = reader.ReadDouble();int readValue2 = reader.ReadInt32();Console.WriteLine("从二进制文件读取: " + readValue1 + ", " + readValue2);}}
}
在这个示例中,我们首先使用 BinaryWriter 打开文件并写入一个 double 值和一个 int 值。然后使用 BinaryReader 打开同一个文件,并按照写入的顺序读取相应类型的数据,并将其输出到控制台。
使用 BinaryWriter 和 BinaryReader 可以实现对二进制文件的灵活读写操作。同时,using 关键字确保在使用完成后正确地关闭文件流,释放资源。
Windows 文件系统的操作
C# 允许您使用各种目录和文件相关的类来操作目录和文件,比如 DirectoryInfo 类和 FileInfo 类。
DirectoryInfo 类
DirectoryInfo 类派生自 FileSystemInfo 类。它提供了各种用于创建、移动、浏览目录和子目录的方法。该类不能被继承。
下表列出了 DirectoryInfo 类中一些常用的属性:
| 序号 | 属性 & 描述 |
|---|---|
| 1 | Attributes 获取当前文件或目录的属性。 |
| 2 | CreationTime 获取当前文件或目录的创建时间。 |
| 3 | Exists 获取一个表示目录是否存在的布尔值。 |
| 4 | Extension 获取表示文件存在的字符串。 |
| 5 | FullName 获取目录或文件的完整路径。 |
| 6 | LastAccessTime 获取当前文件或目录最后被访问的时间。 |
| 7 | Name 获取该 DirectoryInfo 实例的名称。 |
下表列出了 DirectoryInfo 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public void Create() 创建一个目录。 |
| 2 | public DirectoryInfo CreateSubdirectory( string path ) 在指定的路径上创建子目录。指定的路径可以是相对于 DirectoryInfo 类的实例的路径。 |
| 3 | public override void Delete() 如果为空的,则删除该 DirectoryInfo。 |
| 4 | public DirectoryInfo[] GetDirectories() 返回当前目录的子目录。 |
| 5 | public FileInfo[] GetFiles() 从当前目录返回文件列表。 |
如需查看完整的属性和方法列表,请访问微软的C# 文档。
FileInfo 类
FileInfo 类派生自 FileSystemInfo 类。它提供了用于创建、复制、删除、移动、打开文件的属性和方法,且有助于 FileStream 对象的创建。该类不能被继承。
下表列出了 FileInfo 类中一些常用的属性:
| 序号 | 属性 & 描述 |
|---|---|
| 1 | Attributes 获取当前文件的属性。 |
| 2 | CreationTime 获取当前文件的创建时间。 |
| 3 | Directory 获取文件所属目录的一个实例。 |
| 4 | Exists 获取一个表示文件是否存在的布尔值。 |
| 5 | Extension 获取表示文件存在的字符串。 |
| 6 | FullName 获取文件的完整路径。 |
| 7 | LastAccessTime 获取当前文件最后被访问的时间。 |
| 8 | LastWriteTime 获取文件最后被写入的时间。 |
| 9 | Length 获取当前文件的大小,以字节为单位。 |
| 10 | Name 获取文件的名称。 |
下表列出了 FileInfo 类中一些常用的方法:
| 序号 | 方法 & 描述 |
|---|---|
| 1 | public StreamWriter AppendText() 创建一个 StreamWriter,追加文本到由 FileInfo 的实例表示的文件中。 |
| 2 | public FileStream Create() 创建一个文件。 |
| 3 | public override void Delete() 永久删除一个文件。 |
| 4 | public void MoveTo( string destFileName ) 移动一个指定的文件到一个新的位置,提供选项来指定新的文件名。 |
| 5 | public FileStream Open( FileMode mode ) 以指定的模式打开一个文件。 |
| 6 | public FileStream Open( FileMode mode, FileAccess access ) 以指定的模式,使用 read、write 或 read/write 访问,来打开一个文件。 |
| 7 | public FileStream Open( FileMode mode, FileAccess access, FileShare share ) 以指定的模式,使用 read、write 或 read/write 访问,以及指定的分享选项,来打开一个文件。 |
| 8 | public FileStream OpenRead() 创建一个只读的 FileStream。 |
| 9 | public FileStream OpenWrite() 创建一个只写的 FileStream。 |
如需查看完整的属性和方法列表,请访问微软的 C# 文档。
实例
using System;
using System.IO;class Program
{static void Main(){string directoryPath = @"D:/C#";// 使用 DirectoryInfo 获取目录信息DirectoryInfo directoryInfo = new DirectoryInfo(directoryPath);if (directoryInfo.Exists){Console.WriteLine("目录名称: " + directoryInfo.Name);Console.WriteLine("创建时间: " + directoryInfo.CreationTime);// 使用 FileInfo 遍历文件信息FileInfo[] files = directoryInfo.GetFiles();Console.WriteLine("文件数: " + files.Length);foreach (FileInfo file in files){Console.WriteLine("文件名: " + file.Name);Console.WriteLine("文件大小: " + file.Length + " 字节");Console.WriteLine("上次访问时间: " + file.LastAccessTime);}}else{Console.WriteLine("目录不存在。");}}
}
在这个示例中,我们首先使用 DirectoryInfo 类获取指定目录的信息,包括目录名和创建时间。然后使用 GetFiles 方法获取目录中的所有文件信息,并遍历输出每个文件的名称、大小和最后访问时间等信息。
通过使用 DirectoryInfo 类和 FileInfo 类,可以方便地获取目录和文件的各种信息,并对其进行操作。
相关文章:
学习c#的第十八天
目录 C# 文件的输入与输出 C# I/O 类 FileStream 类 文本文件的读写 StreamReader 类 StreamWriter 类 实例 二进制文件的读写 BinaryReader 类 BinaryWriter 类 实例 Windows 文件系统的操作 DirectoryInfo 类 FileInfo 类 实例 C# 文件的输入与输出 一个 文件…...
element + vue3,级联选择器实现省市区
由于es6支持哈希,所以数据量只要不太大,就不需要对el-cascader进行点击后在调接口出现下一级,很简单的就是直接获取所有数据。 <template><div><el-cascader :modelValue"modelValue" :props"innerProps"…...
程序员的护城河-并发编程
👏作者简介:大家好,我是爱吃芝士的土豆倪,24届校招生Java选手,很高兴认识大家📕系列专栏:Spring源码、JUC源码🔥如果感觉博主的文章还不错的话,请👍三连支持&…...
外卖小程序系统:数字化餐饮的编码之道
在当今数字化时代,外卖小程序系统成为了餐饮业的一项技术巨制。这个系统不仅提供了便捷的点餐体验,更通过先进的技术手段,实现了高效订单处理、实时配送追踪以及个性化推荐。让我们深入了解外卖小程序系统的技术魔法,一起揭秘数字…...
单链表相关面试题--1.删除链表中等于给定值 val 的所有节点
/* 解题思路:从头节点开始进行元素删除,每删除一个元素,需要重新链接节点 */ struct ListNode* removeElements(struct ListNode* head, int val) {if(head NULL)return NULL;struct ListNode* cur head;struct ListNode* prev NULL;while…...
一生一芯18——Chisel模板与Chisel工程构建
Chisel模板链接如下: 链接: https://pan.baidu.com/s/1DNDKpz5VnTxPgoZBBOd-Ww?pwdrevg 提取码: revg Chisel转Verilog模板如下: 链接: https://pan.baidu.com/s/1T9JQL5BccxqI4bscfU-JyA?pwd7rw2 提取码: 7rw2 以下使用sbt作为构建工具 Chisel项目构…...
ES6 class类
基本介绍 1. constructor constructor()方法是类的默认方法,通过new命令生成对象实例时,自动调用该方法。 一个类必须有constructor()方法,如果没有显式定义,一个空的constructor()方法会被默认添加。如: class Po…...
Java的IO流-打印流
打印流 PrintStream public void println()自动换行 PrintWriter package com.itheima.println;import java.io.FileInputStream; import java.io.PrintStream; import java.io.PrintWriter;public class Test2 {public static void main(String[] arg…...
如何使用$APPEALS法,分析用户期待?
$APPEALS分析法是一种用于分析用户期待和需求的方法,它可以帮助企业全方位多角度地了解客户对产品的期望,有助于企业多维度有侧重地调整市场规划和产品改进策略,帮助企业打造优势产品,提高市场竞争力。 下面是使用$APPEALS分析法来…...
南京工程学院数据结构考试纲要
...
C++中将 sizeof() 用于类
C中将 sizeof() 用于类 您知道,通过使用关键字 class 声明自定义类型,可封装数据属性和使用数据的方法。运算符 sizeof( )用于确定指定类型需要多少内存,单位为字节。这个运算符也可用于类,在这种情况下,它将指出类声…...
Android studio访问选程https接口(.crt handshake)
如果服务器是https的,访问受限怎么办?有两种方法,一种是接受一切证书个人官方正式非正式,当然这样就牺牲了安全性,网上方法很多,我现在教大家如何去验证crt文件 首先服务器是https的,必然有几个…...
设计模式(一)-设计原则(1)
六大设计原则 1、单一职责原则 特点: 类和方法属性等,都应当遵守单一职责。尽可能保持统一性,单一性。 含义: (1)统一性,定义一个模块就必须要符合所有对象的行为特征。比如声明一个 Animal 类…...
Linux|僵死进程
1.僵死进程产生的原因或者条件: 什么是僵死进程? 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程. 简而言之,就是子进程先结束,并且父进程没有获取它的退出码; 那么僵死进程产生的原因或者条件就是:子进程先于父进程结束,并且父进程没有获取…...
JDY蓝牙注意事项
波特率设置:9600,不接受115200,或者38400. 不同于WiFi测试,jdy蓝牙不接受AT"指令,可以使用“ATVERSION"指令测试 安信可公司的那个蓝牙指令在这里没有用,不知道是不是生产的公司不一样...
服务器IPMI管理操作
简介:智能平台管理界面(IPMI,Intelligent Platform Management Interface)是管理基于 Intel 结构的企业系统中所使用的外围设备采用的一种工业标准,用户可以利用IPMI监视服务器的物理健康特征,如温度、电压、风扇工作状…...
自动驾驶学习笔记(九)——车辆控制
#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 控制器设计 比例积分微分控制 线性…...
HTML5学习系列之项目实战1
HTML5学习系列之项目实战1 前言代码记录问题总结 前言 学习记录 代码 <div id"player"><audio id"musicbox"></audio><div id"controls" class"clearfix controls"><div id"play" class"…...
git 提交成了LFS格式,如何恢复
平常习惯使用sourceTree提交代码,某次打开时弹出了一个【是否要使用LFS提交】的确认弹窗,当时不知道LFS是什么就点了确认,后续提交时代码全变成了这个样子 因为是初始化的项目首次提交,将近四百个文件全被格式化成了这个样子&…...
【ISP图像处理】Demosaic去马赛克概念介绍以及相关方法整理
1. 基本定义 使用彩色滤光器阵列(CFA)的数码相机需要一个去马赛克程序来形成完整的RGB图像。一般的相机传感器都是采用彩色滤光片阵列(CFA)放置在光感测单元上,在每个像素处仅捕获三种原色成分中的一种。 去马赛克方法主要关注于复原非常规区域,比如边缘…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
Go 语言接口详解
Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
ardupilot 开发环境eclipse 中import 缺少C++
目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...
【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...
Ubuntu Cursor升级成v1.0
0. 当前版本低 使用当前 Cursor v0.50时 GitHub Copilot Chat 打不开,快捷键也不好用,当看到 Cursor 升级后,还是蛮高兴的 1. 下载 Cursor 下载地址:https://www.cursor.com/cn/downloads 点击下载 Linux (x64) ,…...
Qt 事件处理中 return 的深入解析
Qt 事件处理中 return 的深入解析 在 Qt 事件处理中,return 语句的使用是另一个关键概念,它与 event->accept()/event->ignore() 密切相关但作用不同。让我们详细分析一下它们之间的关系和工作原理。 核心区别:不同层级的事件处理 方…...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...
基于Uniapp的HarmonyOS 5.0体育应用开发攻略
一、技术架构设计 1.混合开发框架选型 (1)使用Uniapp 3.8版本支持ArkTS编译 (2)通过uni-harmony插件调用原生能力 (3)分层架构设计: graph TDA[UI层] -->|Vue语法| B(Uniapp框架)B --&g…...
