String to Stream

H

Hayato Iriumi

I'm looking for a way to convert String to Stream. I don't want to have to
write the string out to a file to get the stream. Does anyone know how?

TIA
 
J

Jay B. Harlow [MVP - Outlook]

Hayato,
You cannot convert the String to a Stream per se.

However! You can use the StringReader & StringWriter to read from & write to
a String. If your IO routines expect TextReader & TextWriter you can then
use Strings & Streams interchangeable. As TextReader is the base class for
both StreamReader & StringReader. Same with TextWriter and StreamWriter &
StringWriter.

With the aid of the System.Text.Encoding class you could convert the String
into an Array of Bytes, which you can pass to the constructor of
MemoryStream.

Of course you are free to inherit from Stream to create a StringStream
class.

The StringReader & StringWriter is my first choice, then I use the others as
appropriate.

Hope this helps
Jay
 
F

Fergus Cooney

Konichiwa Hayato,

Have you seen the MemoryStream? It works with byte arrays so you will need
to convert your string - which you can do with an Encoding.

[Untested]
Dim aBytes (Encoding.XXX.GetMaxByteCount) As Byte _
= Encoding.XXX.GetBytes (sString)
Dim strmMem As New MemoryStream (aBytes)

Where XXX is Unicode, or Ascii or whatever your string is.

If I may ask, what do you want to do with this Streamed string?

Regards,
Fergus.
 
H

Hayato Iriumi

Thank you very much! Memory stream works.

Jay B. Harlow said:
Hayato,
You cannot convert the String to a Stream per se.

However! You can use the StringReader & StringWriter to read from & write to
a String. If your IO routines expect TextReader & TextWriter you can then
use Strings & Streams interchangeable. As TextReader is the base class for
both StreamReader & StringReader. Same with TextWriter and StreamWriter &
StringWriter.

With the aid of the System.Text.Encoding class you could convert the String
into an Array of Bytes, which you can pass to the constructor of
MemoryStream.

Of course you are free to inherit from Stream to create a StringStream
class.

The StringReader & StringWriter is my first choice, then I use the others as
appropriate.

Hope this helps
Jay
 
H

Hayato Iriumi

Konnichiwa to you too. ;)

I have a Windows Service that listens a certain port. When ASP .NET
application sends a message to the Windows Service, it starts to do batch
processing... Well, the reason I wanted to use MemoryStream was that I
wanted to encrypt the message and then send the message out to Windows
Service. I've been trying to do this, but I guess I took a wrong route... My
plan was...

(1) Encrypt the string and keep the encrypted string in memory.
(2) Create byte array out of the encrypted string.
(3) Write it into NetworkStream
(4) Listener receives it as byte array
(5) Construct encrypted string
(6) Decrypt it.

I haven't successfully been able to do this... Any suggestion?
 
H

Herfried K. Wagner [MVP]

* "Hayato Iriumi said:
I'm looking for a way to convert String to Stream. I don't want to have to
write the string out to a file to get the stream. Does anyone know how?

Have a look at the 'System.IO.MemoryStream' class. You can write the
string using a 'StreamWriter'.
 
F

Fergus Cooney

Hi Hayato,

It sounds like a reasonable plan. What's not working in it?

Regards,
Fergus
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top