C#文件操作(創建、讀取、修改)

判斷文件是否存在 ?不存在則創建默認文件 并寫入默認值

        /// <summary>/// 判斷文件是否存在  不存在則創建默認文件 并寫入默認值/// </summary>public void IsConfigFileExist(){try{// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config";if (!Directory.Exists(path))      //此文件夾是否存在{Directory.CreateDirectory(path); //創建文件夾}//創建IP文件夾string path1 = path + "\\SerialPortConfig.ini";System.IO.FileInfo fi = new System.IO.FileInfo(path1);if (!File.Exists(path1))       //判斷IPAdderss.txt是否存在{//不存在文件,則創建IPAdderss.txt文件FileStream fs = new FileStream(path1, FileMode.Create, FileAccess.Write);fs.Close();//打開文件StreamWriter sw = new StreamWriter(path1);//定義一個鍵值對集合Dictionary<string, string> dictionary = new Dictionary<string, string>();//添加鍵值對數據,鍵必須唯一,值可重復dictionary.Add("參數解釋", "R1:繼電器1打開;R11:繼電器1關閉;");dictionary.Add("R1", "01 05 00 20 FF 00 8D F0");dictionary.Add("R11", "01 05 00 20 00 00 CC 00");dictionary.Add("R2", "01 05 00 21 FF 00 DC 30");dictionary.Add("R21", "01 05 00 21 00 00 9D C0");dictionary.Add("R3", "01 05 00 22 FF 00 2C 30");dictionary.Add("R31", "01 05 00 22 00 00 6D C0");dictionary.Add("R4", "01 05 00 23 FF 00 7D F0");dictionary.Add("R41", "01 05 00 23 00 00 3C 00");dictionary.Add("R5", "01 05 00 24 FF 00 CC 31");dictionary.Add("R51", "01 05 00 24 00 00 8D C1");dictionary.Add("R6", "01 05 00 25 FF 00 9D F1");dictionary.Add("R61", "01 05 00 25 00 00 DC 01");dictionary.Add("R7", "01 05 00 26 FF 00 6D F1");dictionary.Add("R71", "01 05 00 26 00 00 2C 01");dictionary.Add("R8", "01 05 00 27 FF 00 3C 31");dictionary.Add("R81", "01 05 00 27 00 00 7D C1");//通過鍵值對遍歷集合foreach (KeyValuePair<string, string> kv in dictionary){//向文件中寫入參數sw.WriteLine(kv.Key + "=" + kv.Value);}//向文件中寫入參數//關閉文件sw.Close();}//創建用戶文件夾,存儲用戶名和密碼path1 = path + "\\User.ini";fi = new System.IO.FileInfo(path1);if (!File.Exists(path1))       //判斷IPAdderss.txt是否存在{//不存在文件,則創建IPAdderss.txt文件FileStream fs = new FileStream(path1, FileMode.Create, FileAccess.Write);fs.Close();//打開文件StreamWriter sw = new StreamWriter(path1);//定義一個鍵值對集合Dictionary<string, string> dictionary = new Dictionary<string, string>();//添加鍵值對數據,鍵必須唯一,值可重復dictionary.Add("操作員", "123456");dictionary.Add("管理員", "admin");//通過鍵值對遍歷集合foreach (KeyValuePair<string, string> kv in dictionary){//向文件中寫入參數sw.WriteLine(kv.Key + "=" + kv.Value);}//向文件中寫入參數//關閉文件sw.Close();}}catch (Exception ex){MessageBox.Show("異常:" + ex.Message);}}

執行效果:創建文件并寫入默認值(以鍵值對形式)

通過鍵和文件名讀取文件中的值

 /// <summary>/// 讀取文件/// </summary>/// <param name="keyName">鍵名</param>/// <param name="FileName">文件名</param>/// <returns></returns>public string ReadConfigFile(string keyName, string FileName){// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config";string filePath = path + "\\" + FileName;string returnValue = "";if (!Directory.Exists(path))      //此文件夾是否存在{IsConfigFileExist();}Dictionary<string, string> keyValuePairs = new Dictionary<string, string>();using (StreamReader reader = new StreamReader(filePath)){string line;while ((line = reader.ReadLine()) != null){string[] parts = line.Split('=');if (parts.Length == 2){keyValuePairs[parts[0].Trim()] = parts[1].Trim();}}}foreach (var kvp in keyValuePairs){//Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");if (kvp.Key == keyName){return kvp.Value;}}return returnValue;}

執行效果:讀取鍵名為R1的值

通過鍵修改文件中的值

      /// <summary>/// 修改文件/// </summary>/// <param name="modifyKeyName">鍵名</param>/// <param name="modifyKeyValue">鍵值</param>/// <param name="modifyFileName">文件名</param>/// <returns></returns>public bool UpdateConfigFile(string modifyKeyName, string modifyKeyValue, string modifyFileName){try{// 獲取應用程序的當前工作目錄。string fileName = System.IO.Directory.GetCurrentDirectory();string path = fileName + "\\Config\\" + modifyFileName;string keyToUpdate = modifyKeyName;string newValue = modifyKeyValue;// 讀取文件內容到字符串數組string[] lines = File.ReadAllLines(path);string updatedContent = "";bool keyFound = false;foreach (var line in lines){if (line.StartsWith(keyToUpdate + "=")){// 找到鍵,修改值updatedContent += $"{keyToUpdate}={newValue}\n";keyFound = true;}else{// 未找到鍵,直接添加原行updatedContent += line + "\n";}}if (!keyFound){// 如果鍵不存在,添加新的鍵值對updatedContent += $"{keyToUpdate}={newValue}\n";}// 寫入修改后的內容到文件File.WriteAllText(path, updatedContent);}catch (Exception ex){MessageBox.Show("異常:" + ex.Message);return false;}return true;}

執行效果:修改鍵為R1的值為123

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/92607.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/92607.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/92607.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于阿里云平臺的文章評價模型訓練與應用全流程指南

基于阿里云平臺的文章評價模型訓練與應用全流程指南 前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家&#xff0c;覺得好請收藏。點擊跳轉到網站。 1. 項目概述 1.1 項目背景 在當今信息爆炸的時代&…

AI 及開發領域動態與資源匯總(2025年7月24日)

AI 項目、工具及動態匯總 項目/產品名稱核心功能/簡介主要特點/亮點相關鏈接Supervision一個流行的計算機視覺工具庫&#xff0c;用于加速計算機視覺應用的構建。模型無關&#xff0c;可與多種主流庫集成&#xff1b;提供豐富的可定制標注工具&#xff1b;支持多種數據集操作和…

C專題8:文件操作1

1.C語言中的文件是什么?所謂文件&#xff08;file&#xff09;一般指存儲在外部介質上數據的集合&#xff0c;比如我們經常使用的txt、bmp、jpg、exe、rmvb等等。這些文件各有各的用途&#xff0c;我們通常將它們存放在磁盤或者可移動盤等介質中。文件無非就是一段數據的集合&…

Opencv C# 重疊 粘連 Overlap 輪廓分割 (不知道不知道)

先上效果圖一種基于凹陷檢測重疊輪廓分割的方法這兩個星期壓力大的一批&#xff0c;心臟都給干得亂跳了&#xff0c;現在高血壓心率不齊貧血。兄弟們保重身體啊。簡單說下邏輯&#xff1a;前處理&#xff1a;的噼里啪啦我就不說了&#xff0c;根據樣品來(灰度&#xff0c;濾波&…

CentOS7 安裝 rust 1.82.0

CentOS7 安裝 rust 1.82.0 我在CentOS7.9中安裝rust遇到報錯版本低&#xff0c;再升級版本的過程中遇到諸多問題&#xff0c;簡單記錄。 遇到的問題 提示版本低 centos7 安裝 ERROR: Rust 1.75.0 or newer required.Rust version 1.72.1 was found.原因是 CentOS7 的默認的軟件…

Compose 適配 - 鍵鼠模式

一、概念不止觸摸交互&#xff0c;在 ChromeOS 或外接鍵鼠的設備上&#xff0c;需要考慮焦點、懸停、右鍵等操作邏輯。二、使用2.1 焦點使用 Tab 鍵來導航&#xff0c;改變邊框以提供清晰的焦點指示器。Composable fun Demo() {val interactionSource remember { MutableInter…

征服 Linux 網絡:核心服務與實戰解析

在當今的IT基礎設施中&#xff0c;Linux作為服務器操作系統的基石&#xff0c;其強大的網絡功能是其不可或缺的優勢。對于任何志在成為高級系統管理員或運維工程師的人來說&#xff0c;精通Linux網絡配置與服務管理是核心競爭力。 與日常應用不同&#xff0c;Linux網絡管理往往…

Spark 之 DataFrame

# foreach useFeatureDF.rdd.foreachPartition {iter => iter.foreach {row =>val userId = row.getAs[Int]

射頻信號(大寬高比)時頻圖目標檢測anchors配置(下)

書接上文&#xff1a; 射頻信號&#xff08;大寬高比&#xff09;時頻圖目標檢測anchors配置&#xff08;上&#xff09; 三、4090加成檢測效果深度優化 在4090 24G專用顯存加持下繼續探究大寬高比目標檢測的奧秘&#xff1a; Conda環境遷移至租的云服 在云服上第一次測試…

跨境支付入門~國際支付結算(區塊鏈篇)

摘要Web3區塊鏈技術架構解析&#xff1a;從底層共識到應用生態本文系統梳理了Web3作為穩定幣基礎設施的技術架構&#xff0c;采用"數字共和國"的比喻框架&#xff0c;將區塊鏈技術分解為六大核心模塊&#xff1a;憲法根基&#xff08;區塊鏈層&#xff09;&#xff1…

Docker 私服

什么是 Docker 私服&#xff1f; Docker 官方的 Docker Hub 是一個用于管理公共鏡像的倉庫&#xff0c;我們可以從上面拉取鏡像 到本地&#xff0c;也可以把我們自己的鏡像推送上去。 但是&#xff0c;有時候我們的服務器無法訪問互聯網&#xff0c;或者你不希望將自己的鏡像…

DeepSeek vs ChatGPT:誰更勝一籌?

新興 AI 聊天機器人的崛起與挑戰&#xff1a;對話模型發展觀察近年來&#xff0c;生成式人工智能領域持續取得突破&#xff0c;聊天機器人作為其中的代表&#xff0c;廣泛應用于寫作、編程、問答和信息處理等任務。2025 年初&#xff0c;國內某 AI 團隊宣布了多項模型技術進展&…

飛算科技:以原創技術為翼,賦能產業數字化轉型

在數字經濟浪潮席卷全球的當下&#xff0c;一批專注于技術創新的中國企業正加速崛起&#xff0c;飛算數智科技&#xff08;深圳&#xff09;有限公司&#xff08;簡稱 “飛算科技”&#xff09;便是其中的佼佼者。作為一家國家級高新技術企業&#xff0c;飛算科技以自主創新為核…

電商接口什么意思?

“電商接口”這四個字&#xff0c;在中文互聯網上出現的頻次越來越高&#xff1a;商家后臺、小程序、ERP、數據大屏……幾乎任何與線上零售沾邊的場景都會提到它。然而&#xff0c;對大多數剛進入電商行業的新人&#xff0c;甚至一些已經開了很多年網店的老板來說&#xff0c;這…

前端面試專欄-前沿技術:30.跨端開發技術(React Native、Flutter)

&#x1f525; 歡迎來到前端面試通關指南專欄&#xff01;從js精講到框架到實戰&#xff0c;漸進系統化學習&#xff0c;堅持解鎖新技能&#xff0c;祝你輕松拿下心儀offer。 前端面試通關指南專欄主頁 前端面試專欄規劃詳情 跨端開發技術&#xff08;React Native、Flutter&am…

復盤—MySQL觸發器實現監聽數據表值的變化,對其他數據表做更新

文章目錄 MySQL交換數據庫表中兩列的值(額外的知識) 為防止后面有疑問,提前解釋為什么需要 `$$` ? 第一版需求 第二版需求 第三版需求 注意事項: 存在的嚴重問題 最終版 關鍵修復說明: 完整測試場景: 額外建議(如果需要顯式處理NULL): COALESCE函數 業務中出現的問題…

SpringCloud【Sentinel】

1&#xff0c;工作原理 2&#xff0c;常見規則 流量控制&#xff08;FlowRule&#xff09; 1&#xff0c;閾值類型設置如下 單機均攤&#xff1a;每個機器均攤&#xff0c;比如閾值填5&#xff0c;三個機器&#xff0c;就個機器都可以有5個 總體閾值&#xff1a;所有機器總閾…

解構未來金融:深入剖析DeFi與去中心化交易所(DEX)的技術架構

今天&#xff0c;我們來聊一個顛覆傳統金融界的熱門話題——DeFi&#xff08;去中心化金融&#xff09;。大家可能聽說過它如何承諾將銀行、交易所、保險等金融服務構建在一個開放、無需許可的區塊鏈網絡上。而這一切魔法的核心&#xff0c;正是其獨特的“技術架構”。 在這篇文…

中國西北典型綠洲區土壤水分特征(2018-2019年)

數據集摘要該數據包含張掖綠洲黑河沿岸濕地、過渡帶楊樹林土壤水分、溫度數據。數據采集時間為2018年至2019年&#xff0c;采集地點為張掖綠洲&#xff0c;數據為日數據。該數據集是按照課題制定的試驗方案和中國生態系統研究網絡編著的陸地生態系統水土氣生觀測規范進行數據的…

MySQL高可用部署

目錄 一、MHA&#xff08;一主多從模式&#xff09; 1.環境準備&#xff08;所有節點&#xff09; 2. 部署 MySQL 主從復制&#xff08;MasterSlave&#xff09; 3.部署 MHA Manager&#xff08;管理節點&#xff09; &#xff08;1&#xff09;安裝 MHA Manager &#xf…