在没有辅助类的流中读写字符串

本文关键字:读写 字符串 | 更新日期: 2023-09-27 18:07:01

假设我想将字符串"Hello World"写入MemoryStream,并将该字符串读取到MessageBox.Show(),而不使用辅助对象,如BinaryWriterBinaryReader, StreamWriterStreamReader等。

你能告诉我如何用MemoryStream流对象的低级函数来完成这个吗?

p。s:我都用c#和VB。所以,请随意使用它们中的任何一个。

谢谢。

在没有辅助类的流中读写字符串

您必须选择一个文本编码并使用它来获取数据:

        var data = "hello, world";
        // Encode the string (I've chosen UTF8 here)
        var inputBuffer = Encoding.UTF8.GetBytes(data);
        using (var ms = new MemoryStream())
        {
            ms.Write(inputBuffer, 0, inputBuffer.Length);
            // Now decode it back
            MessageBox.Show(Encoding.UTF8.GetString(ms.ToArray()));
        }

只需使用System.Text.ASCIIEncoding.ASCII.GetBytes("your string)并将结果字节数组写入流。

然后,使用System.Text.ASCIIEncoding.ASCII.GetString(your byte array)解码字符串。

希望能有所帮助。

检查这个:http://msdn.microsoft.com/en-us/library/system.io.memorystream.write.aspx

// Create the data to write to the stream.
byte[] firstString = uniEncoding.GetBytes("Hello World");
using(var memStream = new MemoryStream(100))
{
  memStream.Write(firstString, 0 , firstString.Length);
}