定义string变量为str,内存流变量为ms,比特数组为bt

1.字符串转比特数组

 

 

2.字符串转流

 

 

3.流转比特数组

 

(1)byte[] bt=ms.ToArray();
(2)MemoryStream ms=new MemoryStream();ms.Write(bt,0,ms.Length);

 

4.流转字符串

 

(1)string str=Convert.ToBase64String(ms.ToArray());
(2)string str=System.Text.Encoding.Default.GetString(ms.ToArray());

 

5.比特数组转字符串

 

(1)string str=System.Text.Encoding.Default.GetString(bt);
(2)string str=Convert.ToBase64String(bt);

 

6.比特数组转流

 

(1)MemoryStream ms=new MemoryStream(bt);
(2)MemoryStream ms=new MemoryStream();ms.Read(bt,0,bt.Length);

 

总结:可以看出byte[]在字符串string和流MemoryStream之间转换起到过渡的作用,string和MemoryStream转换都要先转换成byte[]。

 

以下是将文件转为byte[]

/// <summary>
/// 将文件转换成byte[] 数组
/// </summary>
/// <param name="fileUrl">文件路径文件名称</param>
/// <returns>byte[]</returns>
protected byte[] GetFileData(string fileUrl)
{
  FileStream fs = new FileStream(fileUrl, FileMode.Open, FileAccess.Read);
  try
  {
    byte[] buffur = new byte[fs.Length];
    fs.Read(buffur, 0, (int)fs.Length);

    return buffur;
  }
  catch (Exception ex)
  {
    //MessageBoxHelper.ShowPrompt(ex.Message);
    return null;
  }
  finally
  {
    if (fs != null)
    {

      //关闭资源
      fs.Close();
    }
  }
}


/// <summary>
/// 将文件转换成byte[] 数组
/// </summary>
/// <param name="fileUrl">文件路径文件名称</param>
/// <returns>byte[]</returns>

protected byte[] AuthGetFileData(string fileUrl)
{
  using (FileStream fs = new FileStream(fileUrl, FileMode.OpenOrCreate, FileAccess.ReadWrite))
  {
    byte[] buffur = new byte[fs.Length];
    using (BinaryWriter bw = new BinaryWriter(fs))
    {
      bw.Write(buffur);
      bw.Close();
    }
    return buffur;
  }
}
C# 字符串string和内存流MemoryStream及比特数组byte[]之间相互转换

相关文章:

  • 2022-12-23
  • 2022-01-09
  • 2021-08-12
  • 2021-08-15
  • 2022-12-23
  • 2021-09-07
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-01-25
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
相关资源
相似解决方案