在Azure存储中读取和写入文本文件

在Azure存储中读取和写入文本文件,azure,azure-storage,Azure,Azure Storage,下面的代码首先将一行文本保存到文本文件中,并显示在azure存储中,然后读取并打印 string firstString = "this \t is \n a \t line \n are: "; using (var memoryStream = new MemoryStream()) { memoryStream.Write(System.Text.Encoding.UTF8.GetBy

下面的代码首先将一行文本保存到文本文件中,并显示在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);
            }


发生的情况是,当您将字节数组写入
memoryStream
时,您没有将流的位置重置为0,因此正在上载一个0字节的blob。

当您使用
memoryStream
时,您首先写入内存,在从内存写入blob之后,最好直接写入blob,例如:

    using (var blobStream = blockBlob.OpenWrite())
    {
        var data = System.Text.Encoding.UTF8.GetBytes(firstString);
        blobStream.Write(data, 0, data.Length);
    }

@Gaurav Mantri的解决方案是什么,当它是位图图像(而不是文本)@basharabushama时也是一样的解决方案。同样也应该可以。System.Text.Encoding.UTF8.GetBytes(MyBitMapImg)不起作用!啊。。。。我懂了。这将适用于基于文本的数据,而不是二进制数据。您需要使用位图图像上的函数来读取流。您可以将您的问题作为单独的问题发布。是的,我发布了,谢谢:
    using (var blobStream = blockBlob.OpenWrite())
    {
        var data = System.Text.Encoding.UTF8.GetBytes(firstString);
        blobStream.Write(data, 0, data.Length);
    }