以下代码首先将一行文本保存到一个文本文件中,存在于azure存储中,然后读取并打印。
string firstString = "this \t is \n a \t line \n are: ";
using (var memoryStream = new MemoryStream())
{
memoryStream.Write(System.Text.Encoding.UTF8.GetBytes(firstString), 0, System.Text.Encoding.UTF8.GetBytes(firstString).Length);
blockBlob.UploadFromStream(memoryStream);
}
string text;
using (var memoryStream = new MemoryStream())
{
blockBlob.DownloadToStream(memoryStream);
text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray());
Trace.WriteLine(text);
}
问题是 Trace.Writeline() 语句中没有打印任何内容。
首先我认为这可能是一个编码问题,所以我将文本文件的格式从 ASCII 更改为 UTF8,但仍然没有打印任何内容。 我在这里缺少什么,非常感谢任何帮助。
最佳答案
替换以下代码行:
using (var memoryStream = new MemoryStream())
{
memoryStream.Write(System.Text.Encoding.UTF8.GetBytes(firstString), 0, System.Text.Encoding.UTF8.GetBytes(firstString).Length);
blockBlob.UploadFromStream(memoryStream);
}
与
using (var memoryStream = new MemoryStream())
{
memoryStream.Write(System.Text.Encoding.UTF8.GetBytes(firstString), 0, System.Text.Encoding.UTF8.GetBytes(firstString).Length);
memoryStream.Position = 0;
blob.UploadFromStream(memoryStream);
}
发生的情况是,当您将字节数组写入 memoryStream
时,您并未将流的位置重置为 0,因此正在上传 0 字节的 blob。
关于azure - 在 Azure 存储中读取和写入文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17063021/