J'ai besoin de convertir une chaîne en type System.IO.Stream pour passer à une autre méthode.Convertir une chaîne en System.IO.Stream
J'ai essayé ceci sans succès.
Stream stream = new StringReader(contents);
J'ai besoin de convertir une chaîne en type System.IO.Stream pour passer à une autre méthode.Convertir une chaîne en System.IO.Stream
J'ai essayé ceci sans succès.
Stream stream = new StringReader(contents);
Essayez ceci:
// convert string to stream
byte[] byteArray = Encoding.UTF8.GetBytes(contents);
//byte[] byteArray = Encoding.ASCII.GetBytes(contents);
MemoryStream stream = new MemoryStream(byteArray);
et
// convert stream to string
StreamReader reader = new StreamReader(stream);
string text = reader.ReadToEnd();
Merci. Je n'étais pas au courant MemoryStream était le même que Stream. – xbonez
@xbonez: 'Stream' n'est pas la même chose que' MemoryStream'. 'MemoryStream' hérite de' Stream', tout comme 'FileStream'. Vous pouvez donc les transformer en 'Stream' ... – Marco
Juste une note: Les flux implémentent IDisposable, vous avez donc besoin d'un wrapper qui les utilise pour être sûr. –
Pour convertir une chaîne à un flux que vous devez décider coder les octets dans le flux devrait avoir pour représenter cette chaîne - Par exemple vous pouvez:
MemoryStream mStrm= new MemoryStream(Encoding.UTF8.GetBytes(contents));
références MSDN:
System.IO.MemoryStream mStream = new System.IO.MemoryStream(System.Text.Encoding.UTF8.GetBytes(contents));
string str = "asasdkopaksdpoadks";
byte[] data = Encoding.ASCII.GetBytes(str);
MemoryStream stm = new MemoryStream(data, 0, data.Length);
L'utilisation de l'encodage ASCII rend Panda triste ... :( – jebar8
c'est vieux, mais pour l'aide:
vous pouvez également utiliser le flux StringReader
string str = "asasdkopaksdpoadks";
StringReader TheStream = new StringReader(str);
-1 Eh bien, "qu'est-ce qui n'a pas fonctionné"? Pensez à lire l'espace de noms [System.IO] (http://msdn.microsoft.com/en-us/library/29kt2zfk.aspx) ... il existe une classe de flux "in memory" très utile. –
Je n'étais pas au courant que MemoryStream était le même chez Stream. – xbonez