C# 如何将 MemoryStream 写入 byte[]
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/14443131/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-10 11:49:46 来源:igfitidea点击:
How can I write MemoryStream to byte[]
提问by Polaris
Possible Duplicate:
Creating a byte array from a stream
可能的重复:
从流创建字节数组
I'm trying to create text file in memory and write it byte[]
. How can I do this?
我正在尝试在内存中创建文本文件并写入它byte[]
。我怎样才能做到这一点?
public byte[] GetBytes()
{
MemoryStream fs = new MemoryStream();
TextWriter tx = new StreamWriter(fs);
tx.WriteLine("1111");
tx.WriteLine("2222");
tx.WriteLine("3333");
tx.Flush();
fs.Flush();
byte[] bytes = new byte[fs.Length];
fs.Read(bytes,0,fs.Length);
return bytes;
}
But it does not work because of data length
但由于数据长度,它不起作用
采纳答案by Gabe
How about:
怎么样:
byte[] bytes = fs.ToArray();
回答by Priyank Thakkar
byte[] ObjectToByteArray(Object obj)
{
using (MemoryStream ms = new MemoryStream())
{
BinaryFormatter b = new BinaryFormatter();
b.Serialize(ms, obj);
return ms.ToArray();
}
}
回答by Tomtom
Try the following code:
试试下面的代码:
public byte[] GetBytes()
{
MemoryStream fs = new MemoryStream();
TextWriter tx = new StreamWriter(fs);
tx.WriteLine("1111");
tx.WriteLine("2222");
tx.WriteLine("3333");
tx.Flush();
fs.Flush();
byte[] bytes = fs.ToArray();
return bytes;
}
回答by Snake
public byte[] GetBytes()
{
MemoryStream fs = new MemoryStream();
TextWriter tx = new StreamWriter(fs);
tx.WriteLine("1111");
tx.WriteLine("2222");
tx.WriteLine("3333");
tx.Flush();
fs.Flush();
fs.Position = 0;
byte[] bytes = new byte[fs.Length];
fs.Read(bytes, 0, bytes.Length);
return bytes;
}