日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

【转】!C#中的Stream相关

發(fā)布時間:2023/12/10 C# 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转】!C#中的Stream相关 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
計算機文件基本上分為二種:二進制文件和 ASCII(也稱純文本文件)。圖形文件及文字處理程序等計算機程序都屬于二進制文件。這些文件含有特殊的格式及計算機代碼。ASCII 則是可以用任何文字處理程序閱讀的簡單文本文件,由一些字符的串行組成,具有一定的編碼規(guī)則。如果你將文本文件通過修改后綴的方式修改成圖片,但對于程序來說本質(zhì)上還是文本文件。

FileStream類——這個類主要用于在二進制文件中讀寫二進制數(shù)據(jù)——也可以使用它讀寫任何文件。?流是傳輸數(shù)據(jù)的對象,介于程序中直接與流交互,可以將流理解為數(shù)據(jù)本身。一個FileStream的實例可以理解為一個具體的文件。

System.IO.MemoryStream類和System.Net.Sockets.NetworkStream類。

繼承關系如下圖(除NetWorkStream CryptoStream外,其他均在System.IO下):

流,都是寫一點多一點。從流中讀一點,流就少一點,可以通過方法返回的數(shù)據(jù)來判斷流讀到哪了。

在使用完流后記得釋放流

  • Dispose(true),關閉基礎流,釋放 System.IO.StreamReader 使用的非托管資源和托管資源。
  • Dispose(false),關閉基礎流,僅釋放非托管資源。
  • Close(),關閉 System.IO.StreamReader 對象和基礎流,并釋放與讀取器關聯(lián)的所有系統(tǒng)資源。允許其他應用程序為同一個文件設置流。這個操作也會刷新緩沖區(qū)。
  • 當一個類里面既有Close又有Dispose時,基本這兩個函數(shù)干的事情是差不多的。

https://referencesource.microsoft.com/#mscorlib/system/io/stream.cs源碼

C# 托管資源與非托管資源 - 改變從今天開始 - 博客園?www.cnblogs.com

  • 托管代碼:為.NET編寫的代碼,交由CLR管理(其中包含了GC服務)
  • 非托管代碼:不在CLR控制下運行的代碼。比如Win32 C/C++ DLL

FileStream使用舉例

FileStream讀取

FileStream寫入


StreamReader(流讀取器)StreamWriter(流寫入器)——這兩個類可以對文本文件應用程序進行讀寫;文本文件有不同的編碼格式,StreamReader會幫我們自動處理,你也可以指定編碼格式去讀寫流。除此之外,還能對應用程序進行標準的輸入輸出,常見于對Process輸入輸出;可以將這讀取器或?qū)懭肫骼斫鉃閱蜗虻墓艿?/strong>,給予我們讀寫的能力。這兩種管道也是專門處理流的。而管道是建立在流的基礎之上的。可以通過參數(shù):路徑字符串,已有文件流構(gòu)件管道,還可以通過FileInfo的實例的CreateText()方法來構(gòu)建管道。

與流相同的是:管道也要CloseDispose,只有Dispose(false)是只關管道,不關流。

StreamReader源碼

StreamReader示例

StreamWriter示例

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的【转】!C#中的Stream相关的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。