2

我有一个string数据,我想拥有一个stream而不将其作为文件保存到存储中,然后获取它的流。然后我会将此流发送到 SkyDrive。反正。

await client.UploadAsync(folderId, filename, stream, OverwriteOption.Overwrite);

无论如何要获得一个stream内存中的字符串值,而不先将其保存到存储中?

4

2 回答 2

6

你可以把它写成MemoryStream

using(var stream = new MemoryStream())
{
    var writer = new StreamWriter(stream);
    writer.Write(yourString);
    writer.Flush();
    stream.Position = 0;

    await client.UploadAsync(folderId, filename, stream, OverwriteOption.Overwrite);
}
于 2013-09-04T12:19:56.073 回答
2

当然,使用MemoryStream类。您可以像这样加载它,例如:

var stream = new MemoryStream(Encoding.ASCII.GetBytes("Here is my string."));

或者,您可以Write像这样添加新数据:

var myString = "Hello, World!";
stream.Write(Encoding.ASCII.GetBytes(myString), 0, myString.Length);

如果需要,您当然可以使用不同的编码,UTF8例如。

于 2013-09-04T12:19:13.240 回答