首页 > 编程语言 >【C#】实现读写文件

【C#】实现读写文件

时间:2024-08-13 09:05:52浏览次数:13  
标签:文件 fs filePath C# 读写 sw new message bRet

 /// <summary>
 /// 同步锁
 /// </summary>
 private static readonly object syncRoot = new object();
 /// <summary>
 /// 读同步锁
 /// </summary>
 private static readonly object syncReadRoot = new object();

 /// <summary>
 /// 覆盖写文件信息
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="message"></param>
 /// <returns></returns>
 public static bool WriteFileCover(string filePath,string message)
 { 
     bool bRet=false;
     try
     {
         lock (syncRoot)
         {
             //写入文件
             FileStream fs;
             StreamWriter sw;
             fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
             sw = new StreamWriter(fs);
             sw.Write(message);//开始写入值
             sw.Close();//关闭写入流
             fs.Close();//关闭文件流

             bRet = true;
         }
     }
     catch (Exception ex)
     {
         bRet = false;
     }
     return bRet;
 }
 /// <summary>
 /// 追加写文件信息
 /// </summary>
 /// <param name="filePath"></param>
 /// <param name="message"></param>
 /// <returns></returns>
 public static bool WriteFileAppend(string filePath, string message)
 {
     bool bRet = false;
     try
     {
         lock (syncRoot)
         {
             //写入文件
             FileStream fs;
             StreamWriter sw;
             if (!File.Exists(filePath))
             {
                 fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write);
                 sw = new StreamWriter(fs);
                 sw.Write(message);//开始写入值
             }
             else
             {
                 fs = new FileStream(filePath, FileMode.Append, FileAccess.Write);
                 sw = new StreamWriter(fs);
                 sw.Write(message);//开始写入值
             }
             sw.Close();//关闭写入流
             fs.Close();//关闭文件流
             bRet = true;
         }
     }
     catch (Exception ex)
     {
        bRet = false;
     }
     return bRet;
 }
 /// <summary>
 /// 读取文件信息
 /// </summary>
 /// <param name="filePath"></param>
 /// <returns></returns>
 public static string ReadFile(string filePath)
 {
     string message = "";
     lock (syncReadRoot)
     {
         StreamReader? sr = null;
         try
         {
             if (!File.Exists(filePath))
             {
                 return message;
             }
             sr = File.OpenText(filePath);
             string? nextLine;
             while ((nextLine = sr.ReadLine()) != null)
             {
                 message += nextLine;
             }
             sr?.Close();
         }
         catch (Exception ex)
         {
             sr?.Close();
         }
     }
     return message;
 }

标签:文件,fs,filePath,C#,读写,sw,new,message,bRet
From: https://www.cnblogs.com/qiutian-hao/p/18356165

相关文章

  • 开源的 P2P 跨平台传文件应用「GitHub 热点速览」
    就在上周,发完那篇文章之后不久,我就有幸获得了GitHubModels服务公测的访问权限,所以就体验了一下Playground聊天功能。起初,我以为这是“微软菩萨”降临,但玩了一圈下来,发现实际效果并没有那么惊艳,还没上周热门的开源项目有趣。例如,基于WebRTC的文件传输平台ShareDrop,只需......
  • [ARC182F] Graph of Mod of Linear
    MyBlogs[ARC182F]GraphofModofLinear首先判掉\(A\leq1\)的情况,接下来默认\(A\geq2\)。原图是基环树森林,数连通块数等价于数环的个数。比较自然的一点是,把问题分为\(A,N\)是否互质。因为如果\(A\)和\(N\)互质,则\(Ai+B\)在\(\modN\)意义下互不相同,所以每个......
  • C#判断程序是由Windows服务启动还是用户启动
       在Windows系统做网络开发,很多时候都是使用Windows服务的模式,但在调度阶段,我们更多的是使用控制台的模式。在开发程序的时候,我们在Program的Main入口进行判断。最初开始使用Environment.UserInteractive属性,在系统不系统服务的交互模式时,程序运行是正常的,但试过有Win7下,......
  • P9520 [JOISC2022] 监狱
    P9520[JOISC2022]监狱题目描述有一棵\(N\)个节点的树,有\(M\)个囚犯,要从\(S_i\)走到\(T_i\)。每一时刻可以发布一个命令让一名囚犯走到相邻的节点,要求任意时刻囚犯不能走到同一个节点上,求是否可以令每一个囚犯从\(S_i\)走到\(T_i\)。做法解析首先我们可以发现一个......
  • CF896E Welcome home, Chtholly
    [题目通道](Welcomehome,Chtholly-洛谷)#include<iostream>#pragmaGCCoptimize(1)#pragmaGCCoptimize(2)#pragmaGCCoptimize(3)#pragmaGCCtarget("avx")#pragmaGCCoptimize("Ofast")#pragmaGCCoptimize("inline")#pra......
  • 成都City walk
    目录8-1成都啊我来了8-2&8-3成都成都8-4青城山|都江堰8-5成都博物馆下一次要体验的《成都的细节》张丰8-1成都啊我来了市区->西安北18:10-19:30西安北->成都东19:52-23:278-2&8-3成都成都成都大熊猫繁育研究基地–要看花花的话要6点起床哦......
  • [图文直播]使用EasyOCR识别图片上的文字
    安装EasyOCRC:\Users\Administrator>pipinstalleasyocrCollectingeasyocrDownloadingeasyocr-1.7.1-py3-none-any.whl.metadata(11kB)Collectingtorch(fromeasyocr)Downloadingtorch-2.4.0-cp312-cp312-win_amd64.whl.metadata(27kB)Collectingtor......
  • TypeScript 入门
    0x01概述TypeScript官网TypeScript是一种基于JavaScript构建的强类型编程语言JavaScript的超集,即JavaScript是TypeScript的子集JavaScript类型化,即在JavaScript基础上添加类型系统优势:提供可读性和可维护性在编译阶段检查并报错环境:安装NodeJ......
  • RT-Patch学习
    RT是什么在标准的Linux内核中,内核不是完全可抢占的(notfullypreemptible)。虽然Linux内核支持一些程度的抢占(如在用户空间任务之间的抢占),但在内核态执行关键代码(如持有锁时),内核通常是不可抢占的。这意味着在某些情况下,特别是在处理复杂内核任务时,高优先级的任务可能不得不等......
  • cats的二分答案
    可以证明在k次二分后区间长度最多只有两种,且差最多为1(符合直觉的结论)可以将二分视为对数的划分,而与l和r的取值无关用unordered_map时常会出现奇怪的问题,改成map就好了点击查看代码#include<bits/stdc++.h>usingnamespacestd;longlongK;map<longlong,longlong>q[1......