Azure: Output not as expected in Blob Write

2019-08-03 13:25发布

问题:

I am trying to write output to a text file stored in my azure container.

Following is my woker role snippet for it :

            string copyTemp="";                                

            copyTemp += "hi" + "\n";                
            copyTemp += "hello" + "\n";                

            if (String.IsNullOrEmpty(copyTemp))
                return;

            using (var memoryStream = new MemoryStream())
            {                
                memoryStream.Write(System.Text.Encoding.UTF8.GetBytes(copyTemp), 0, System.Text.Encoding.UTF8.GetBytes(copyTemp).Length);
                memoryStream.Position = 0;
                blockBlob.UploadFromStream(memoryStream); 
            }     

Now, when i download and check my blob,the output doesn't feature a new line.

"hihello"

Does anyone have an idea,what's goin wrong ?

回答1:

Have you tried using Environment.NewLine rather than adding "\n" to your strings?

It might just be that your "\n" is not a full new line in the place you are reading it. In windows I believe you need a "\r\n" to get a proper new line character.

You can read about the differences between new line (\n) and carriage return (\r) and which systems use which on Wikipedia but that clarifies h that windows uses a carriage return and a line feed to signify a new line.

So if you had downloaded your blob on a Mac or on Linux it probably would have displayed as you expected.