Stream 和Byte[] 之间的转换
生活随笔
收集整理的這篇文章主要介紹了
Stream 和Byte[] 之间的转换
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼 ?1?//Stream?和Byte[]之間的轉換
?2?byte[]?arr=new?byte[stream.Length];//設定arr長度
?3?
?4?stream.Read(arr,0,arr.Length);//stream從arr中讀取數據
?5?
?6?//提供表示流中的參考點以供進行查找的字段,設置當前流中的位置。
?7?stream.Seek(0,SeekOrigin.Begin);
?8??
?9?return?arr;
10?
11?
12?//將byte[]?轉換成Stream?利用內存
13?Stream?stream=new?MemoryStream(arr);
14?return?stream;
15?
16?/*?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?
17??*?Stream?和?文件之間的轉換
18??*?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?*/
19?///?<summary>
20?///?將?Stream?寫入文件
21?///?</summary>
22?public?void?StreamToFile(Stream?stream,string?fileName)
23?{
24?????//?把?Stream?轉換成?byte[]
25?????byte[]?bytes?=?new?byte[stream.Length];
26?????stream.Read(bytes,?0,?bytes.Length);
27?????//?設置當前流的位置為流的開始
28?????stream.Seek(0,?SeekOrigin.Begin);
29?
30?????//?把?byte[]?寫入文件
31?????FileStream?fs?=?new?FileStream(fileName,?FileMode.Create);
32?????BinaryWriter?bw?=?new?BinaryWriter(fs);
33?????bw.Write(bytes);
34?????bw.Close();
35?????fs.Close();
36?}
37?
38?///?<summary>
39?///?從文件讀取?Stream
40?///?</summary>
41?public?Stream?FileToStream(string?fileName)
42?{????????????
43?????//?打開文件
44?????FileStream?fileStream?=?new?FileStream(fileName,?FileMode.Open,?FileAccess.Read,?FileShare.Read);
45?????//?讀取文件的?byte[]
46?????byte[]?bytes?=?new?byte[fileStream.Length];
47?????fileStream.Read(bytes,?0,?bytes.Length);
48?????fileStream.Close();
49?????//?把?byte[]?轉換成?Stream
50?????Stream?stream?=?new?MemoryStream(bytes);
51?????return?stream;
52?}
?2?byte[]?arr=new?byte[stream.Length];//設定arr長度
?3?
?4?stream.Read(arr,0,arr.Length);//stream從arr中讀取數據
?5?
?6?//提供表示流中的參考點以供進行查找的字段,設置當前流中的位置。
?7?stream.Seek(0,SeekOrigin.Begin);
?8??
?9?return?arr;
10?
11?
12?//將byte[]?轉換成Stream?利用內存
13?Stream?stream=new?MemoryStream(arr);
14?return?stream;
15?
16?/*?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?
17??*?Stream?和?文件之間的轉換
18??*?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?-?*/
19?///?<summary>
20?///?將?Stream?寫入文件
21?///?</summary>
22?public?void?StreamToFile(Stream?stream,string?fileName)
23?{
24?????//?把?Stream?轉換成?byte[]
25?????byte[]?bytes?=?new?byte[stream.Length];
26?????stream.Read(bytes,?0,?bytes.Length);
27?????//?設置當前流的位置為流的開始
28?????stream.Seek(0,?SeekOrigin.Begin);
29?
30?????//?把?byte[]?寫入文件
31?????FileStream?fs?=?new?FileStream(fileName,?FileMode.Create);
32?????BinaryWriter?bw?=?new?BinaryWriter(fs);
33?????bw.Write(bytes);
34?????bw.Close();
35?????fs.Close();
36?}
37?
38?///?<summary>
39?///?從文件讀取?Stream
40?///?</summary>
41?public?Stream?FileToStream(string?fileName)
42?{????????????
43?????//?打開文件
44?????FileStream?fileStream?=?new?FileStream(fileName,?FileMode.Open,?FileAccess.Read,?FileShare.Read);
45?????//?讀取文件的?byte[]
46?????byte[]?bytes?=?new?byte[fileStream.Length];
47?????fileStream.Read(bytes,?0,?bytes.Length);
48?????fileStream.Close();
49?????//?把?byte[]?轉換成?Stream
50?????Stream?stream?=?new?MemoryStream(bytes);
51?????return?stream;
52?}
? 文章參考:http://www.cnblogs.com/anjou/archive/2007/12/07/986887.html?login=1#commentform?,在此對作者表示感謝!
轉載于:https://www.cnblogs.com/angleSJW/archive/2010/07/13/1776678.html
總結
以上是生活随笔為你收集整理的Stream 和Byte[] 之间的转换的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无聊,写写工作日记吧.
- 下一篇: VC调用外部程序接口