【C# 基礎精講】文件讀取和寫入

在這里插入圖片描述

文件讀取和寫入是計算機程序中常見的操作,用于從文件中讀取數據或將數據寫入文件。在C#中,使用System.IO命名空間中的類來進行文件讀寫操作。本文將詳細介紹如何在C#中進行文件讀取和寫入,包括讀取文本文件、寫入文本文件、讀取二進制文件和寫入二進制文件等操作。

1. 讀取文本文件

要讀取文本文件,可以使用StreamReader類。以下是一個讀取文本文件的示例:

using System;
using System.IO;class Program
{static void Main(string[] args){string filePath = "sample.txt";try{using (StreamReader reader = new StreamReader(filePath)){string content = reader.ReadToEnd();Console.WriteLine("文件內容:");Console.WriteLine(content);}}catch (FileNotFoundException){Console.WriteLine("文件不存在:" + filePath);}catch (Exception ex){Console.WriteLine("發生異常:" + ex.Message);}}
}

在上述示例中,我們使用StreamReader打開文件并使用ReadToEnd方法讀取整個文件內容。通過using語句,確保在使用完StreamReader后自動釋放資源。

2. 寫入文本文件

要寫入文本文件,可以使用StreamWriter類。以下是一個寫入文本文件的示例:

using System;
using System.IO;class Program
{static void Main(string[] args){string filePath = "output.txt";try{using (StreamWriter writer = new StreamWriter(filePath)){writer.WriteLine("Hello, world!");writer.WriteLine("This is a line of text.");}Console.WriteLine("文件寫入成功:" + filePath);}catch (Exception ex){Console.WriteLine("發生異常:" + ex.Message);}}
}

在上述示例中,我們使用StreamWriter打開文件并使用WriteLine方法寫入文本。同樣,通過using語句,確保在使用完StreamWriter后自動釋放資源。

3. 讀取二進制文件

要讀取二進制文件,可以使用BinaryReader類。以下是一個讀取二進制文件的示例:

using System;
using System.IO;class Program
{static void Main(string[] args){string filePath = "binary.dat";try{using (BinaryReader reader = new BinaryReader(File.OpenRead(filePath))){int intValue = reader.ReadInt32();double doubleValue = reader.ReadDouble();Console.WriteLine("整數值:" + intValue);Console.WriteLine("雙精度值:" + doubleValue);}}catch (FileNotFoundException){Console.WriteLine("文件不存在:" + filePath);}catch (Exception ex){Console.WriteLine("發生異常:" + ex.Message);}}
}

在上述示例中,我們使用BinaryReader讀取二進制文件中的整數和雙精度值。

4. 寫入二進制文件

要寫入二進制文件,可以使用BinaryWriter類。以下是一個寫入二進制文件的示例:

using System;
using System.IO;class Program
{static void Main(string[] args){string filePath = "binary_output.dat";try{using (BinaryWriter writer = new BinaryWriter(File.OpenWrite(filePath))){int intValue = 42;double doubleValue = 3.14159;writer.Write(intValue);writer.Write(doubleValue);}Console.WriteLine("二進制文件寫入成功:" + filePath);}catch (Exception ex){Console.WriteLine("發生異常:" + ex.Message);}}
}

在上述示例中,我們使用BinaryWriter寫入整數和雙精度值到二進制文件。

5. 文件讀寫的注意事項

  • 在進行文件讀寫操作時,始終確保正確地處理異常。文件可能不存在、無法訪問或者發生其他問題,您應該能夠適當地捕獲并處理這些異常。

  • 在使用StreamReaderStreamWriter時,使用using語句來自動釋放資源。這有助于防止資源泄漏。

  • 對于二進制文件的讀寫,要確保按照相同的順序和格式讀寫數據。不同的數據類型可能占用不同的字節數,需要保持一致。

6. 總結

文件讀取和寫入是C#中常見的操作,用于從文件中讀取數據或將數據寫入文件。通過System.IO命名空間中的類,您可以輕松實現文本文件和二進制文件的讀寫操作。無論是讀取文本文件、寫入文本文件,還是讀取二進制文件、寫入二進制文件,都需要注意異常處理、資源釋放以及數據格式的一致性。通過掌握文件讀寫技巧,您可以更好地處理和管理文件數據,從而提高程序的靈活性和功能。

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

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

相關文章

選擇大型語言模型自定義技術

推薦:使用 NSDT場景編輯器 助你快速搭建可二次編輯器的3D應用場景 企業需要自定義模型來根據其特定用例和領域知識定制語言處理功能。自定義LLM使企業能夠在特定的行業或組織環境中更高效,更準確地生成和理解文本。 自定義模型使企業能夠創建符合其品牌…

PAT 1013 Battle Over Cities

個人學習記錄,代碼難免不盡人意。 It is vitally important to have all the cities connected by highways in a war. If a city is occupied by the enemy, all the highways from/toward that city are closed. We must know immediately if we need to repair a…

計算機機房的管理

1 電源問題 不穩定的電源對電腦的使用壽命是一個極大的威脅,特別是對于機房來說危害 性更大。為此,學校要添置必要的穩壓器,設置其正常供電的電壓為 220 伏、電流 為 l6 安對電腦室供電。如有電壓發生偏差,要及時檢查供電情況&…

BDA初級分析——認識SQL,認識基礎語法

一、認識SQL SQL作為實用技能,熱度高、應用廣泛 在對數據分析人員的調查中SQL長期作為熱度排名第-一的編程語言超過Python和R SQL:易學易用,高效強大的語言 SQL:Structured Query Language 結構化查詢語言 SQL:易學…

python threading.Event()用法

紅綠燈例子 Event的用法 import threading,timeeventthreading.Event()def lighter():timesec0event.set()while True:if 5<timesec<10:event.clear()print("紅燈亮")elif timesec>10:event.set()timesec0else:print("綠燈亮")time.sleep(1)tim…

BSN“五、十、百”工程實施半年成果豐碩,助力數字化轉型和高質量發展

為推動“云網鏈”融合的新基建賦能數字經濟高質量發展&#xff0c;將區塊鏈服務網絡&#xff08;BSN&#xff09;打造成為中國數字經濟和社會治理的核心區塊鏈公共服務平臺&#xff0c;2023年2月&#xff0c;在“第三屆區塊鏈服務網絡&#xff08;BSN&#xff09;全球合作伙伴大…

力扣75——二分查找

總結leetcode75中的二分查找算法題解題思路。 上一篇&#xff1a;力扣75——堆/優先隊列 力扣75——二分查找 1 猜數字大小2 咒語和藥水的成功對數3 尋找峰值4 愛吃香蕉的珂珂1-4解題總結 1 猜數字大小 題目&#xff1a; 猜數字游戲的規則如下&#xff1a;每輪游戲&#xff0…

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測

多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 目錄 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測預測效果基本介紹模型描述程序設計參考資料 預測效果 基本介紹 多維時序 | MATLAB實現WOA-CNN-BiGRU-Attention多變量時間序列預測 1.程…

java 向上取整 java對小數取整

取整方法 Math.floor(double a) 向下取整 Math.ceil(double a) 向上取整 Math.round(double a) 四舍五入 0.5向下取整 Math.rint(double a) 就近取整 1.6接近2&#xff0c;所以就取2 1.4接近1&#xff0c;所以就取1 1.5跟1和2都很接近&#xff0c;這時候就取偶數 (int) 類型強轉…

MongoDB:數據庫初步應用

一.連接MongoDB 1.MongoDBCompass連接數據庫 連接路徑:mongodb://用戶名:密碼localhost:27017/ 2.創建數據庫(集合) MongoDB中數據庫被稱為集合. MongoDBCompass連接后,點擊紅色框加號創建集合,點擊藍色框加號創建文檔(數據表) 文檔中的數據結構(相當于表中的列)設計不用管…

騰訊云國際輕量應用服務器使用流程是什么呢?

騰訊云國際輕量應用服務器怎么使用呢&#xff1f;下面一起來了解一下&#xff1a; 1. 熟悉輕量應用服務器基礎知識 ①什么是輕量應用服務器 TencentCloud Lighthouse&#xff1f; ②輕量應用服務器與云服務器 CVM 的區別是什么&#xff1f; ③為什么選擇輕量應用服務器&#xf…

一個DW的計算

一個DW的計算 1- 題目: 已知一個DW1.1 要求: 從DW中取出指定的位的值1.1.1 分析1.1.2 實現1.1.3 簡化實現1.1.4 驗證 2- 題目: 已知一個DW2.1 要求: 從DW中的指定的P和S,取出指定的位的值2.1.1 分析2.1.2 實現 1- 題目: 已知一個DW 有圖中所示一行信息&#xff0c;表示一個DW(…

常見的Web安全漏洞有哪些,Web安全漏洞常用測試方法介紹

Web安全漏洞是指在Web應用程序中存在的可能被攻擊者利用的漏洞&#xff0c;正確認識和了解這些漏洞對于Web應用程序的開發和測試至關重要。 一、常見的Web安全漏洞類型&#xff1a; 1、跨站腳本攻擊(Cross-Site Scripting&#xff0c;XSS)&#xff1a;攻擊者通過向Web頁面注入…

神經網絡基礎-神經網絡補充概念-41-梯度的數值逼近

概念 梯度的數值逼近是一種用于驗證梯度計算正確性的方法&#xff0c;它通過近似計算梯度來與解析計算的梯度進行比較。雖然數值逼近在實際訓練中不常用&#xff0c;但它可以用來檢查手動或自動求導的實現是否正確。 代碼實現 import numpy as np# 定義函數 f(x) x^2 def f…

養生的年輕人,自己給自己“治病”

【潮汐商業評論/原創】 “最近嘴周總長痘&#xff0c;應該是上火了&#xff0c;我這就下單點金銀花露喝。”對于長痘這件事&#xff0c;Anna的第一反應就是“內調”。 “針對性護膚和涂藥這些方法治標不治本&#xff0c;就算用完痘痘不泛紅且癟了&#xff0c;身體里的問題沒解…

上傳文件報413Request EntityToo Large錯誤解決辦法

產生這種原因是因為服務器限制了上傳大小 1、nginx服務器的解決辦法 修改nginx.conf的值就可以解決了 將以下代碼粘貼到nginx.conf內 client_max_body_size 20M 可以選擇在http{ }中設置&#xff1a;client_max_body_size 20m; 也可以選擇在server{ }中設置&#xff1a;cli…

金蝶軟件實現Excel數據復制分錄信息粘貼到單據體分錄行中

>>>適合KIS云專業版V16.0|KIS云旗艦版V7.0|K/3 WISE 14.0等版本<<< 實現Excel數據復制分錄信息粘貼到金蝶單據體分錄中,在采購訂單|采購入庫單|銷售訂單|銷售出庫單等類型單據中,以少量的必要字段在excel表格中按模板填列好,很方便快捷地復制到金蝶單據表體…

java+springboot+mysql銀行管理系統

項目介紹&#xff1a; 使用javaspringbootmysql開發的銀行管理系統&#xff0c;系統包含超級管理員、管理員、客戶角色&#xff0c;功能如下&#xff1a; 超級管理員&#xff1a;管理員管理&#xff1b;客戶管理&#xff1b;卡號管理&#xff08;存款、取款、轉賬&#xff09…

Vue 2混入

混入&#xff08;Mixins&#xff09;是一種在Vue組件中重用代碼的方式。它允許你定義一些可復用的選項對象&#xff0c;然后將這些選項合并到不同的組件中。混入可以用于在多個組件之間共享邏輯、方法、生命周期鉤子等。 示例&#xff1a; <!DOCTYPE html> <html>…

.net core介紹

.NET Core&#xff08;現在已經重命名為.NET 5及更高版本為.NET&#xff09;是一個跨平臺的開源開發框架&#xff0c;由Microsoft開發和維護。它旨在支持構建現代、高性能、可擴展的應用程序&#xff0c;可以運行在Windows、macOS和Linux等多個操作系統上。 以下是.NET Core的…