C#Streamとbyte[]間の変換

1768 ワード

--/*--------------------------------------*Streamとbyte[]の切り替え*----------------------------*/
/// <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;
} 
 
/*--------------------------------------*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;
}