C# Stream 和 byte[] 之間的轉換

640?wx_fmt=jpeg

/// <summary>?

/// 將 Stream 轉成 byte[]?

/// </summary>?

public byte[] StreamToBytes(Stream stream)?

{?

? ? byte[] bytes = new byte[stream.Length];?

? ? stream.Read(bytes, 0, bytes.Length);?

? ? // 設置當前流的位置為流的開始?

? ? stream.Seek(0, SeekOrigin.Begin);?

? ? return bytes;?

}?

/// <summary>?

/// 將 byte[] 轉成 Stream?

/// </summary>?

public Stream BytesToStream(byte[] bytes)?

{?

? ? Stream stream = new MemoryStream(bytes);?

? ? return stream;?

}?

/// <summary>?

/// 將 Stream 寫入文件?

/// </summary>?

public void StreamToFile(Stream stream,string fileName)?

{?

? ? // 把 Stream 轉換成 byte[]?

? ? byte[] bytes = new byte[stream.Length];?

? ? stream.Read(bytes, 0, bytes.Length);?

? ? // 設置當前流的位置為流的開始?

? ? stream.Seek(0, SeekOrigin.Begin);?

? ? // 把 byte[] 寫入文件?

? ? FileStream fs = new FileStream(fileName, FileMode.Create);?

? ? BinaryWriter bw = new BinaryWriter(fs);?

? ? bw.Write(bytes);?

? ? bw.Close();?

? ? fs.Close();?

}?

/// <summary>?

/// 從文件讀取 Stream?

/// </summary>?

public Stream FileToStream(string fileName)?

{? ? ? ? ? ? ?

? ? // 打開文件?

? ? FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read);?

? ? // 讀取文件的 byte[]?

? ? byte[] bytes = new byte[fileStream.Length];?

? ? fileStream.Read(bytes, 0, bytes.Length);?

? ? fileStream.Close();?

? ? // 把 byte[] 轉換成 Stream?

? ? Stream stream = new MemoryStream(bytes);?

? ? return stream;?

}?

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

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

相關文章

docker下如何進入到容器中

1:查看容器 docker ps -a 2:進入容器 docker exec -it e3cc80415dc7 /bin/bash 退出容器 exit

java方法和 IDEA Debug調試

方法的概述&#xff1a; 方法就是將具有獨立功能的代碼塊&#xff0c;組織成為一個整體&#xff0c;使其具有特殊功能的代碼集。我感覺方法就是類里面的函數 注意&#xff1a; 方法必須先創建才可以使用&#xff0c;該過程稱為方法的定義。方法創建后并不是直接運行的&#xf…

編譯性語言、解釋性語言和腳本語言的區別

計算機是不能理解高級語言&#xff0c;當然也就不能直接執行高級語言了。計算機只能直接理解機器語言&#xff0c;所以任何語言&#xff0c;都必須將其翻譯成機器語言&#xff0c;計算機才能運行高級語言編寫的程序。 一、翻譯和解釋的不同 翻譯的方式有兩種&#xff0c;一個是…

為什么JAVA的垃圾回收機制無法避免內存泄漏

一、本文參考&#xff1a;1.《深入理解java虛擬機 JVM高級特性與最佳實踐》2.http://coderevisited.com/memory-leaks-in-java/二、對象已死的判定方法要進行JVM中對象回收首先要判斷對象是否已經死亡&#xff0c;判斷的方法有如下幾個&#xff1a;1.引用計數法給對象中添加一個…

Java里try catch的簡單用法

Java里try catch的簡單用法&#xff1a; Java里try catch的簡單用法&#xff1a; 1、trycatch 程序的流程是&#xff1a;運行到try塊中&#xff0c;如果有異常拋出&#xff0c;則轉到catch塊去處理。然后執行catch塊后面的語句 擴展部分&#xff1a; 1、trycatchfinally 程序…

【代碼筆記】iOS-點擊城市中的tableView跳轉到旅游景點的tableView,下面會有“顯示”更多。...

一&#xff0c;效果圖。 二&#xff0c;工程圖。 三&#xff0c;代碼。 RootViewController.h #import <UIKit/UIKit.h>interface RootViewController : UIViewController <UITableViewDelegate,UITableViewDataSource> {UITableView * _tableView;NSMutableArray …

Android Studio項目結構介紹

新建一個空的工程會出現以下界面&#xff1a; 從上往下依次是&#xff1a;項目名稱、包名、項目存儲的位置、項目所用的語言、項目所用的Android的系統版本。 進入之后右側可選擇界面的展示結構&#xff1a; 如果選擇Android則會出現下面的結構展示&#xff1a;MainActivity是…

對于Ping的過程,你真的了解嗎?

作者&#xff1a; 木木匠鏈接&#xff1a;https://juejin.im/post/5c15ec0f6fb9a049ec6af8b2一、概覽對于ping命令&#xff0c;想必只要是程序員都知道吧&#xff1f;當我們檢查網絡情況的時候&#xff0c;最先使用的命令肯定是ping命令吧&#xff1f;一般我們用ping查看網絡情…

Andropid自己定義組件-坐標具體解釋

在做一個view背景特效的時候被坐標的各個獲取方法搞暈了&#xff0c;幾篇抄來抄去的博客也沒弄非常清楚。 如今把整個總結一下。 事實上僅僅要把以下這張圖看明確就沒問題了。 涉及到的方法一共同擁有以下幾個&#xff1a; view獲取自身坐標&#xff1a;getLeft(),getTop(),get…

一階段結束考核題(鏈表的嵌套使用)

鏈表A&#xff0c;每個節點存放一個新的鏈表B1&#xff0c;B2,B3,B4,B5的頭結點。 場景&#xff1a;一個年級&#xff0c;相當鏈表A 該年級5個班&#xff0c;每個班5個人&#xff0c;相當于鏈表B1–B5 做一個學生成績管理系統 學生成績有語文 數學 英語 功能&#xff1a; 錄入成…

RocketMQ帶你快速入門

1. MQ介紹 ##1.1 為什么要用MQ 消息隊列是一種“先進先出”的數據結構 轉存失敗重新上傳取消 其應用場景主要包含以下3個方面 應用解耦 系統的耦合性越高&#xff0c;容錯性就越低。以電商應用為例&#xff0c;用戶創建訂單后&#xff0c;如果耦合調用庫存系統、物流系統、…

年過35歲的程序員都去哪了?一張圖道盡老程序員們的花樣出路

有人來&#xff0c;有人去。程序員何其多&#xff0c;想知道他們都去哪了嗎?對于程序員的工作出路&#xff0c;小編有以下幾點建議&#xff1a;20-27歲&#xff1a;技術積累階段假設本科22歲畢業&#xff0c;那么工作的前5年對你來說是打基礎的階段。在這5年時間里面&#xff…

em,rem

em rem 相對單位: 也可用于設置padding line-height等em相對當前容器的默認字體設置比如,所有瀏覽器默認字體都是16px,body{ font-size:62.5%}以后即1em10px; 1.2em12px 在線轉換tool: http://pxtoem.com/em(css2.0) rem(css3.0)rem相對于頁根元素的字體大小&#xff0c;即 ht…

分布式、高并發、多線程,到底有什么區別?

當提起這三個詞的時候&#xff0c;是不是很多人都認為分布式高并發多線程&#xff1f;當面試官問到高并發系統可以采用哪些手段來解決&#xff0c;或者被問到分布式系統如何解決一致性的問題&#xff0c;是不是一臉懵逼&#xff1f;確實&#xff0c;在一開始接觸的時候&#xf…

linux文件編程(open、write、read、creat、lseek函數)

文件編程內容比較多&#xff0c;如文件系統原理及訪問機制文件在內核中的管理機制&#xff0c;什么是文件信息節點iNode、文件共享、文件權限、各種用戶對其權限等等。以下主要記錄如何用代碼操作文件&#xff0c;實現文件的創建、打開、編輯等自動化執行。 文件描述符介紹、其…

記憶化搜索,FatMouse and Cheese

題目鏈接&#xff1a;http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode1107 http://acm.hdu.edu.cn/showproblem.php?pid1078 1、從gird[0][0]出發&#xff0c;每次的方向搜索一下&#xff0c;每次步數搜索一下 for(i0; i<4; i) {for(j1; j<k; j){int tx…

九種跨域方式實現原理(完整版)

前言前后端數據交互經常會碰到請求跨域&#xff0c;什么是跨域&#xff0c;以及有哪幾種跨域方式&#xff0c;這是本文要探討的內容。一、什么是跨域&#xff1f;1.什么是同源策略及其限制內容&#xff1f;同源策略是一種約定&#xff0c;它是瀏覽器最核心也最基本的安全功能&a…

文件編程練習

自己實現linux CP指令 實現cp指令的思路&#xff1a; 打開要復制的原文件讀原文件的內容到buf打開或者創建要粘貼的文件將buf里面的內容寫到目標文件關閉兩個文件 main 函數的標準原型&#xff1a; main 函數的標準原型應該是 int main(int argc, char *argv[]);argc 是命令…