1. 程式人生 > >C# Stream 和 byte[] 之間的轉換,字串可以轉換成byte[]

C# Stream 和 byte[] 之間的轉換,字串可以轉換成byte[]

/* - - - - - - - - - - - - - - - - - - - - - - - -  
 * 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; 
}