您好,登錄后才能下訂單哦!
C#中怎么實現文件處理操作,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
1、什么是流?
流是用來載體與載體之間傳送數據的。載體是數據的載體,如:如果數據存放在硬盤上,則硬盤是載體,放U盤上,則U盤是載體,以此類推。
2、流傳送數據的方式是什么?
一個字節一個字節的傳送,說白了就是傳送字節數組。字節數組是連續的內存空間。
3、把對象用流傳送必須先轉換為字節數組。
4.讀文件實質
string---->編碼、序列化、把字符串轉換為字節數組--->byte[]--->fs[FileStream]--->文件
5.寫文件的實質
文件--->fs[FileStream]--->byte[]--->解碼、反序列化、把字節數組轉換為字符串--->string
6、當流對文件進行寫操作[Write]時,會自動調用一個新線程來專門寫文件,所以對文件的寫操作完畢后必須清空緩沖區,fs.Flush(); fs是FileStream的一個實例,即--->清空非托管內存。因為在進行對文件的寫操作時,會新建一個文件,Windows系統將會調用windows代碼,才會存在非托管內存。 調用fs.Flush()時主線程等待從線程寫入完畢,就相當于調用了EndInvoke(),它自動實現了IDisposable接口來釋放非托管內存.
7、在對文件進行讀取操作的時候,可能出現亂碼,原因是--->沒有采用同一套字符集的編碼器。如:UTF8ENCODING、gb2312、UNICODE等
8、流的分類
byte[]---------->文件流--------->文件
byte[]--------->網絡流--------->網絡
byte[]--------->內存流--------->對象
byte[]--------->緩存流--------->另一個流
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。