C# Stream 和 byte[] 之間的轉換_C#教程

來源:互聯網
上載者:User
/* - - - - - - - - - - - - - - - - - - - - - - - - 
 * 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;
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.