C# byte[]和文件FileStream相互转化

本文介绍了一个简单的文件读取和写入方法,通过使用C#的FileStream和BinaryReader类实现将文件内容读取到byte[]中,并能将byte[]写回到指定文件的功能。

using System.IO;
None.gif
None.gif
//读filename到byte[]
None.gif

None.gif        
private byte[] ReadFile(string fileName)
None.gif
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            FileStream pFileStream 
= null;
InBlock.gif
InBlock.gif            
byte[] pReadByte = new byte[0];
InBlock.gif
InBlock.gif            
try
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                pFileStream 
= new FileStream(fileName, FileMode.Open, FileAccess.Read);
InBlock.gif
InBlock.gif                BinaryReader r 
= new BinaryReader(pFileStream);
InBlock.gif
InBlock.gif                r.BaseStream.Seek(
0, SeekOrigin.Begin);    //将文件指针设置到文件开
InBlock.gif

InBlock.gif                pReadByte 
= r.ReadBytes((int)r.BaseStream.Length);
InBlock.gif
InBlock.gif                
return pReadByte;
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
catch
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                
return pReadByte;
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
finally
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                
if (pFileStream != null)
InBlock.gif
InBlock.gif                    pFileStream.Close();
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif        
//写byte[]到fileName
None.gif

None.gif        
private bool writeFile(byte[] pReadByte, string fileName)
None.gif
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif            FileStream pFileStream 
= null;
InBlock.gif
InBlock.gif 
InBlock.gif
InBlock.gif            
try
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                pFileStream 
= new FileStream(fileName, FileMode.OpenOrCreate);
InBlock.gif
InBlock.gif                pFileStream.Write(pReadByte, 
0, pReadByte.Length);
InBlock.gif
InBlock.gif 
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
catch
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                
return false;
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
finally
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                
if (pFileStream != null)
InBlock.gif
InBlock.gif                    pFileStream.Close();
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
InBlock.gif            
return true;
InBlock.gif
ExpandedBlockEnd.gif        }

None.gif
None.gif         测试
None.gif
None.gif        
private void button6_Click(object sender, EventArgs e)
None.gif
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif
InBlock.gif             
//by 闫磊 Email:Landgis@126.com,yanleigis@21cn.com 2007.11.23
InBlock.gif

InBlock.gif 
InBlock.gif
InBlock.gif
byte[] b = ReadFile(@"c:\u.jpg");
InBlock.gif
InBlock.gif            
if (writeFile(b, @"c:\u1.jpg"))
InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif
InBlock.gif                MessageBox.Show(
"成功");
InBlock.gif
ExpandedSubBlockEnd.gif            }

InBlock.gif
ExpandedSubBlockStart.gifContractedSubBlock.gif            
else dot.gif{ MessageBox.Show("失败"); }
InBlock.gif
ExpandedBlockEnd.gif        }

转载于:https://www.cnblogs.com/jiangj/archive/2010/09/03/1816886.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值