【转】!C#中的Stream相关
FileStream類——這個類主要用于在二進制文件中讀寫二進制數(shù)據(jù)——也可以使用它讀寫任何文件。?流是傳輸數(shù)據(jù)的對象,介于程序中直接與流交互,可以將流理解為數(shù)據(jù)本身。一個FileStream的實例可以理解為一個具體的文件。
System.IO.MemoryStream類和System.Net.Sockets.NetworkStream類。
繼承關(guān)系如下圖(除NetWorkStream CryptoStream外,其他均在System.IO下):
流,都是寫一點多一點。從流中讀一點,流就少一點,可以通過方法返回的數(shù)據(jù)來判斷流讀到哪了。
在使用完流后記得釋放流
- Dispose(true),關(guān)閉基礎(chǔ)流,釋放 System.IO.StreamReader 使用的非托管資源和托管資源。
- Dispose(false),關(guān)閉基礎(chǔ)流,僅釋放非托管資源。
- Close(),關(guān)閉 System.IO.StreamReader 對象和基礎(chǔ)流,并釋放與讀取器關(guān)聯(lián)的所有系統(tǒng)資源。允許其他應(yīng)用程序為同一個文件設(shè)置流。這個操作也會刷新緩沖區(qū)。
- 當一個類里面既有Close又有Dispose時,基本這兩個函數(shù)干的事情是差不多的。
https://referencesource.microsoft.com/#mscorlib/system/io/stream.cs源碼
C# 托管資源與非托管資源 - 改變從今天開始 - 博客園?www.cnblogs.com
- 托管代碼:為.NET編寫的代碼,交由CLR管理(其中包含了GC服務(wù))
- 非托管代碼:不在CLR控制下運行的代碼。比如Win32 C/C++ DLL
FileStream使用舉例
FileStream讀取
FileStream寫入
StreamReader(流讀取器)StreamWriter(流寫入器)——這兩個類可以對文本文件和應(yīng)用程序進行讀寫;文本文件有不同的編碼格式,StreamReader會幫我們自動處理,你也可以指定編碼格式去讀寫流。除此之外,還能對應(yīng)用程序進行標準的輸入輸出,常見于對Process輸入輸出;可以將這讀取器或?qū)懭肫骼斫鉃閱蜗虻墓艿?/strong>,給予我們讀寫的能力。這兩種管道也是專門處理流的。而管道是建立在流的基礎(chǔ)之上的??梢酝ㄟ^參數(shù):路徑字符串,已有文件流構(gòu)件管道,還可以通過FileInfo的實例的CreateText()方法來構(gòu)建管道。
與流相同的是:管道也要Close或Dispose,只有Dispose(false)是只關(guān)管道,不關(guān)流。
StreamReader源碼
StreamReader示例
StreamWriter示例
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的【转】!C#中的Stream相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 首颗AMD锐龙3 7320U处理器曝光:
- 下一篇: 触目惊心!上外男生给女生投放的牛磺酸泡腾