File,FileStream,byte[]3者互相转换总结(转)

File>>>FileStream (2种方式)
方式1:
FileStream fs1 = File.Open ( @"D:\集团通知.jpg" , FileMode.Open );
方式2:
FileStream fs2 = new FileStream ( @"D:\通知.jpg" , FileMode.Open );

FileStream>>>byte[]
byte [ ] b1 = new byte [ fs1.Length ];
fs1.Read ( b1 , 0 , b1.Length );

把文件保存到数据库中一般是File>>>FileStream>>>byte[]

byte[]>>>File(2种方式)
假设byte[ ] b1里面有数据
方式1:
File.WriteAllBytes ( @"D:\通知b2.jpg" , b1 );
方式2:
FileStream fs = new FileStream ( @"D:\通知b_2.jpg" , FileMode.OpenOrCreate , FileAccess.Write );
fs.Write ( b1 , 0 , b1.Length );
fs.Close ( );

FileStream>>>FileStream
有时需要把文件流写到ftp的请求流中,实际上是利用byte[]做了一个缓冲区
Stream requestStream = uploadRequest.GetRequestStream ( );
FileStream fileStream =  File.Open ( @"D:\abc.txt" , FileMode.Open );

byte [ ] buffer = new byte [ 1024 ];
int bytesRead;
while ( true )
{
bytesRead = fileStream.Read ( buffer , 0 , buffer.Length );
if ( bytesRead == 0 )
break;
requestStream.Write ( buffer , 0 , bytesRead );
}

posted @   郑文亮  阅读(457)  评论(1编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示