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 類別
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 枚舉的成員有:
Append:開啟一個現有的文件,並將遊標放置在文件的末端。如果文件不存在,則建立文件。
Create:建立一個新的檔案。如果文件已存在,則刪除舊文件,然後建立新文件。
CreateNew:指定作業系統應建立一個新的檔案。如果檔案已存在,則拋出異常。
Open:開啟一個已有的檔案。如果檔案不存在,則拋出異常。
OpenOrCreate:指定作業系統應開啟一個已有的檔案。如果文件不存在,則用指定的名稱建立新的文件開啟。
Truncate:開啟一個已有的文件,文件一旦打開,就會被截斷為零位元組大小。然後我們可以向文件寫入全新的數據,但保留文件的初始建立日期。如果檔案不存在,則拋出異常。
FileAccess
FileAccess 枚舉的成員有:Read、ReadWrite 和 Write。
FileShare
FileShare 枚舉的成員有:
Inheritable:允許檔案句柄可由子程序繼承。 Win32 不直接支援此功能。
None:謝絕共享目前檔案。文件關閉前,打開該文件的任何請求(由此進程或另一個進程發出的請求)都會失敗。
Read:允許隨後開啟檔案讀取。如果未指定此標誌,則在檔案關閉前,任何開啟該檔案以進行讀取的請求(由此進程或另一進程發出的請求)都會失敗。但是,即使指定了此標誌,仍可能需要附加權限才能夠存取該檔案。
ReadWrite:允許隨後開啟檔案讀取或寫入。如果未指定此標誌,則在檔案關閉前,任何開啟該檔案以進行讀取或寫入的請求(由此進程或另一進程發出)都會失敗。但是,即使指定了此標誌,仍可能需要附加權限才能夠存取該檔案。
Write:允许随后打开文件写入。如果未指定此标志,则文件关闭前,任何打开该文件以进行写入的请求(由此进程或另一进过程发出的请求)都将失败。但是,即使指定了此标志,仍可能需要附加权限才能够访问该文件。
Delete:允许随后删除文件。
实例
下面的程序演示了 FileStream 类的用法:
using System; using System.IO; namespace FileIOApplication { class Program { static void Main(string[] args) { FileStream F = new FileStream("test.dat", FileMode.OpenOrCreate, FileAccess.ReadWrite); for (int i = 1; i <= 20; i++) { F.WriteByte((byte)i); } F.Position = 0; for (int i = 0; i <= 20; i++) { Console.Write(F.ReadByte() + " "); } F.Close(); Console.ReadKey(); } } }
当上面的代码被编译和执行时,它会产生下列结果:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 -1
C# 高级文件操作
上面的实例演示了 C# 中简单的文件操作。但是,要充分利用 C# System.IO 类的强大功能,您需要知道这些类常用的属性和方法。
在下面的章节中,我们将讨论这些类和它们执行的操作。请单击链接详细了解各个部分的知识:
主题
描述
文本文件的读写 它涉及到文本文件的读写。StreamReader 和 StreamWriter 类有助于完成文本文件的读写。
二进制文件的读写 它涉及到二进制文件的读写。BinaryReader 和 BinaryWriter 类有助于完成二进制文件的读写。
Windows 文件系统的操作 它让 C# 程序员能够浏览并定位 Windows 文件和目录。
以上就是【c#教程】C# 文件的输入与输出的内容,更多相关内容请关注PHP中文网(www.php.cn)!

C#.NETisversatileforbothwebanddesktopdevelopment.1)Forweb,useASP.NETfordynamicapplications.2)Fordesktop,employWindowsFormsorWPFforrichinterfaces.3)UseXamarinforcross-platformdevelopment,enablingcodesharingacrossWindows,macOS,Linux,andmobiledevices.

C#和.NET通過不斷的更新和優化,適應了新興技術的需求。 1)C#9.0和.NET5引入了記錄類型和性能優化。 2).NETCore增強了雲原生和容器化支持。 3)ASP.NETCore與現代Web技術集成。 4)ML.NET支持機器學習和人工智能。 5)異步編程和最佳實踐提升了性能。

c#.netissutableforenterprise-levelapplications withemofrosoftecosystemdueToItsStrongTyping,richlibraries,androbustperraries,androbustperformance.however,itmaynotbeidealfoross-platement forment forment forment forvepentment offependment dovelopment toveloperment toveloperment whenrawspeedsportor whenrawspeedseedpolitical politionalitable,

C#在.NET中的編程過程包括以下步驟:1)編寫C#代碼,2)編譯為中間語言(IL),3)由.NET運行時(CLR)執行。 C#在.NET中的優勢在於其現代化語法、強大的類型系統和與.NET框架的緊密集成,適用於從桌面應用到Web服務的各種開發場景。

C#是一種現代、面向對象的編程語言,由微軟開發並作為.NET框架的一部分。 1.C#支持面向對象編程(OOP),包括封裝、繼承和多態。 2.C#中的異步編程通過async和await關鍵字實現,提高應用的響應性。 3.使用LINQ可以簡潔地處理數據集合。 4.常見錯誤包括空引用異常和索引超出範圍異常,調試技巧包括使用調試器和異常處理。 5.性能優化包括使用StringBuilder和避免不必要的裝箱和拆箱。

C#.NET應用的測試策略包括單元測試、集成測試和端到端測試。 1.單元測試確保代碼的最小單元獨立工作,使用MSTest、NUnit或xUnit框架。 2.集成測試驗證多個單元組合的功能,常用模擬數據和外部服務。 3.端到端測試模擬用戶完整操作流程,通常使用Selenium進行自動化測試。

C#高級開發者面試需要掌握異步編程、LINQ、.NET框架內部工作原理等核心知識。 1.異步編程通過async和await簡化操作,提升應用響應性。 2.LINQ以SQL風格操作數據,需注意性能。 3..NET框架的CLR管理內存,垃圾回收需謹慎使用。

C#.NET面試問題和答案包括基礎知識、核心概念和高級用法。 1)基礎知識:C#是微軟開發的面向對象語言,主要用於.NET框架。 2)核心概念:委託和事件允許動態綁定方法,LINQ提供強大查詢功能。 3)高級用法:異步編程提高響應性,表達式樹用於動態代碼構建。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

Dreamweaver CS6
視覺化網頁開發工具

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中