2013-09-04 4 views
1

나는 string의 데이터를 가지고 있는데, 파일로 저장하고 그 스트림을 저장하지 않고 stream을 갖고 싶습니다. 그 다음 나는이 시내를 SkyDrive에 보낼 것이다. 어쨌든.메모리 문자열의 스트림을 가져 오는 방법은 무엇입니까?

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

먼저 스토리지에 저장하지 않고, 메모리 내 문자열 값의 stream를 얻을 수 어쨌든 있나요?

답변

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); 
} 
2

물론, MemoryStream 클래스를 사용하십시오. 이런 식으로 당신이 할 수있는, 단지 Write 새로운 데이터를

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

또는 : 당신은 예를 들어 다음과 같이 그것을로드 할 수 당신이 말할 필요

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

당신은 물론 다른 인코딩을 사용할 수 있습니다 예 : UTF8.

+0

+1하지만 난이'è'을 잃게 다음에, 나는 오류가 첫 번째 옵션으로 제시 당신 것을 알고거야 ASCII 인코딩 : -) – xanatos

+0

@ xanatos, 예 글로벌 어플리케이션을 다루지 않기 때문에 UTF8 방식으로는별로하지 않습니다. 죄송합니다. ( –

+1

+1.하지만 내 인생에서 인코딩에 머물러 있습니다! 감사합니다. – user2715606

관련 문제