3.2 FileStream

1.FileStream


1.FileStream

FileStream操作的是字节数组,读写文本需配合Encoding(:UTF8)转换1).构造函数 这是使用FileStream的第一步,用于打开/创建文件并指定操作模式
// 参数:文件路径、文件模式、文件访问权限、文件共享方式FileStreamfs=newFileStream("test.txt",FileMode.OpenOrCreate,// 不存在则创建,存在则打开FileAccess.ReadWrite,// 可读可写FileShare.None// 不允许其他程序共享);


2).读取字节(Read()/ReadAsync())a.Read(byte[]buffer,intoffset,intcount):从流中读取字节到缓冲区,返回实 际读取的字节数(到文件末尾时返回0) b.ReadAsync:异步版本,避免阻塞主线程(适合大文件)
usingSystem;usingSystem.IO;usingSystem.Text;classProgram{staticvoidMain(){// 确保文件存在并写入测试内容File.WriteAllText("test.txt","Hello FileStream!");using(FileStreamfs=newFileStream("test.txt",FileMode.Open,FileAccess.Read)){byte[]buffer=newbyte[1024];// 缓冲区,存储读取的字节intbytesRead;// 实际读取的字节数StringBuildersb=newStringBuilder();// 循环读取,直到文件末尾(bytesRead=0)while((bytesRead=fs.Read(buffer,0,buffer.Length))>0){// 将字节转换为字符串(UTF8编码)stringcontent=Encoding.UTF8.GetString(buffer,0,bytesRead);sb.Append(content);}Console.WriteLine("读取的内容:"+sb.ToString());// 输出:读取的内容:Hello FileStream!}}}

3).写入字节:Write()/WriteAsync()a.Write(byte[]buffer,intoffset,intcount):将缓冲区中的字节写入流 b.WriteAsync:异步写入,适合大文件/高并发场景
usingSystem;usingSystem.IO;usingSystem.Text;classProgram{staticvoidMain(){stringcontent="这是要写入的测试内容";// 将字符串转换为字节数组(UTF8编码)byte[]buffer=Encoding.UTF8.GetBytes(content);using(FileStreamfs=newFileStream("test.txt",FileMode.Create,FileAccess.Write)){// 写入字节数组(从索引0开始,写入全部长度)fs.Write(buffer,0,buffer.Length);Console.WriteLine("内容写入完成!");}// 验证写入结果Console.WriteLine("文件内容:"+File.ReadAllText("test.txt"));// 输出:文件内容:这是要写入的测试内容}}

4).调整流位置:Seek()Seek(longoffset,SeekOriginorigin):调整文件指针的位置,用于随机读写(比如跳 过前N个字节、回到文件开头) a.offset:偏移量("正数向后,负数向前")b.SeekOrigin:偏移原点("Begin/Current/End")
usingSystem;usingSystem.IO;usingSystem.Text;classProgram{staticvoidMain(){File.WriteAllText("test.txt","0123456789");using(FileStreamfs=newFileStream("test.txt",FileMode.Open,FileAccess.Read)){// 1. 定位到第3个字节(跳过前2个:0、1)fs.Seek(2,SeekOrigin.Begin);byte[]buffer=newbyte[2];fs.Read(buffer,0,2);Console.WriteLine(Encoding.UTF8.GetString(buffer));// 输出:23// 2. 从当前位置向后移动1个字节fs.Seek(1,SeekOrigin.Current);fs.Read(buffer,0,2);Console.WriteLine(Encoding.UTF8.GetString(buffer));// 输出:45// 3. 定位到文件末尾前2个字节fs.Seek(-2,SeekOrigin.End);fs.Read(buffer,0,2);Console.WriteLine(Encoding.UTF8.GetString(buffer));// 输出:89}}}

5).刷新缓冲区:Flush()/FlushAsync()FileStream会将写入的字节先存入内存缓冲区,达到一定大小后才写入磁盘。Flush()强制将 缓冲区的所有数据立即写入磁盘(避免数据丢失)
using(FileStreamfs=newFileStream("test.txt",FileMode.Create,FileAccess.Write)){byte[]buffer=Encoding.UTF8.GetBytes("测试Flush");fs.Write(buffer,0,buffer.Length);fs.Flush();// 强制写入磁盘Console.WriteLine("缓冲区已刷新到磁盘");}

6).释放资源:Close()/Dispose()a.Close():关闭流并释放资源(等价于Dispose())。 b.Dispose():释放流占用的所有资源(文件句柄、内存等)

7).复制流:CopyTo()/CopyToAsync()将当前FileStream的内容复制到另一个流(比如复制文件)
using(FileStreamsource=newFileStream("source.txt",FileMode.Open,FileAccess.Read))using(FileStreamtarget=newFileStream("target.txt",FileMode.Create,FileAccess.Write)){// 将source的内容复制到targetsource.CopyTo(target);Console.WriteLine("文件复制完成!");}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1140922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot的仓库管理系统毕设源码

博主介绍:✌ 专注于Java,python,✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的本研究旨在设计并实现一个基于SpringBoot框架的仓库管理系统,以满足现代企业对高效、可靠、易用的仓库管理解决方案的需求。具体研究目的如下&#x…

Infra十年演进(2015–2025)

Infra十年演进(2015–2025) 一句话总论: 2015年Infra还是“单机多卡手工脚本本地集群”的原始时代,2025年已进化成“万亿级多模态VLA大模型云原生训练量子加速自进化全域弹性无服务器秒级自愈分布式”的终极AI基础设施&#xff0c…

实战案例:汽车数字孪生车间的提示工程应用

从物理车间到数字孪生:提示工程如何让汽车制造“会思考”? 关键词 数字孪生车间、提示工程、AI智能制造、故障预测、生产优化、自然语言交互、数据闭环 摘要 当汽车制造车间从“物理实体”进化为“数字孪生”,如何让这个“虚拟双胞胎”不仅能…

嘉环科技携手 TDengine,助力某水务公司构建一体化融合平台

小T导读:在某水务公司水务物联网平台项目中,嘉环科技充分利用大数据、AIoT 等技术,构建统一物联网平台,实现数据的充分整合和高效、便捷、安全的集中式管理运维,平台通过集中管控全市水务设备,实现了水务公…

ControlNet十年演进(2015–2025)

ControlNet十年演进(2015–2025) 一句话总论: 2015年ControlNet还“不存在”(条件生成仅简单文本/类标签),2023年2月ControlNet正式诞生后仅2年半,已从“单条件Stable Diffusion附加控制”进化成…

吐血推荐专科生必用TOP8AI论文平台

吐血推荐专科生必用TOP8AI论文平台 2026年专科生必备AI论文平台测评解析 随着人工智能技术的不断进步,越来越多的学术辅助工具进入高校师生的视野,尤其对于专科生而言,论文写作往往面临时间紧张、资料查找困难、格式不规范等多重挑战。为了帮…

华为OD机试 - 整型数组按照个位数排序(Java 双机位C卷 100分)

华为OD机试 双机位C卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试(JAVA)真题》。 刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的…

信创电话助手电话录音盒操作系统兼容性

一、国产 Linux 桌面操作系统(仅支持桌面版,不支持服务器版) ✅ 支持的操作系统 麒麟(Kylin)统信 UOSDeepin欧拉(OpenEuler)【注:仅限桌面发行版】 ✅ 系统要求 内核版本&#x…

当模型“知道自己在作弊”:Scheming 与 Reward Hacking 的技术解剖

当模型“知道自己在作弊”:Scheming & Reward Hacking 的技术解剖 问题重述:错误,还是欺骗? 之前已经写了几篇文章展开大模型在幻觉和诚实问题上的区别。 在工程实践中,我们常将模型错误归因为能力不足或知识缺…

HY-MT1.5开源社区贡献指南:模型改进与反馈提交实战

HY-MT1.5开源社区贡献指南:模型改进与反馈提交实战 随着多语言交流需求的不断增长,高质量翻译模型成为推动全球化信息流通的核心技术。腾讯近期开源了混元翻译大模型 1.5 版本(HY-MT1.5),涵盖两个关键模型&#xff1a…

巴菲特的公司治理观点

巴菲特的公司治理观点 关键词:巴菲特、公司治理、股东价值、长期主义、管理层激励 摘要:本文深入探讨了巴菲特的公司治理观点。从背景介绍入手,阐述了研究巴菲特公司治理观点的目的、范围、预期读者等内容。详细剖析了巴菲特公司治理核心概念与联系,包括股东导向、管理层素…

吐血推荐9个AI论文写作软件,研究生轻松搞定毕业论文!

吐血推荐9个AI论文写作软件,研究生轻松搞定毕业论文! AI 工具助力论文写作,研究生也能轻松应对 随着人工智能技术的不断发展,AI 工具在学术领域的应用越来越广泛。尤其是在论文写作过程中,AI 工具不仅能够显著降低 AIG…

springboot竞赛团队组建与管理系统的设计与实现

背景分析随着高校学科竞赛的普及和团队协作需求的增加,传统的人工管理方式面临效率低、信息分散、协同困难等问题。SpringBoot竞赛团队组建与管理系统通过技术手段解决以下痛点:信息碎片化:竞赛通知、团队成员信息、进度跟踪依赖线下沟通&…

Triton十年演进(2015–2025)

Triton十年演进(2015–2025) 一句话总论: 2015年Triton还“不存在”(GPU自定义算子靠手工CUDA专家),2025年Triton已进化成“OpenAI主导的Python级GPU内核语言全自动编译优化万亿模型训练/推理标配量子加速融…

1.线性switch case语句逆向特征

文章目录逆向实战:我是怎么从这段汇编一眼看出它是 switch,而不是一串 if/else1. 先把源码和目标放在脑子里2. 第一眼看到的异常感:**比较链太“整齐”了**2.1 同一个变量,被连续拿来和多个“干净的常量”比较3. 再往下看&#xf…

实时数据异常检测模块

污水监控 环境监测 云平台半夜三点,我盯着电脑屏幕上的折线图突然开始剧烈波动——污水厂进水口的COD浓度在十分钟内从200mg/L飙升到1200mg/L。这不是普通的污染事件,系统自动触发警报的同时,Python脚本已经开始抓取周边企业排水数据。 def d…

HY-MT1.5-7B A/B测试:不同参数版本效果对比部署方案

HY-MT1.5-7B A/B测试:不同参数版本效果对比部署方案 1. 引言 随着多语言交流需求的不断增长,高质量、低延迟的翻译模型成为智能应用的核心组件。腾讯近期开源了混元翻译大模型1.5版本(HY-MT1.5),包含两个关键模型&am…

实时日志分析:ELK Stack深度优化指南

实时日志分析:ELK Stack深度优化指南 引言 在DevOps、故障排查、用户行为分析等场景中,实时日志分析是企业IT系统的“神经中枢”。它能帮助团队快速定位问题(比如服务器宕机、接口超时)、监控系统状态(比如CPU使用率、…

MoE(Mixture of Experts)架构十年演进(2015–2025)

MoE(Mixture of Experts)架构十年演进(2015–2025) 一句话总论: 2015年MoE还是“理论复苏小规模手工专家路由”的学术时代,2025年已进化成“万亿级多模态VLA动态MoE意图级自适应专家量子加速自进化全域具身…

HY-MT1.5如何接入现有系统?API接口调用实战教程

HY-MT1.5如何接入现有系统?API接口调用实战教程 1. 引言:为什么选择HY-MT1.5进行翻译集成? 随着全球化业务的不断扩展,多语言实时翻译能力已成为企业出海、内容本地化和跨语言沟通的核心需求。传统商业翻译API(如Goog…