# Operating on strings using IO interface

**URL:** <https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005>\
**Category:** Ruby\
**Created:** [April 14, 2007, 12:06pm UTC](https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005 "2007-04-14T12:06:11Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![samoht](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ac8455/32.png) [@samoht](https://www.ruby-forum.com/u/samoht)\
**Post date:** [April 14, 2007, 12:06pm UTC](https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005/1 "2007-04-14T12:06:11Z")

</div>

Hello,

is there a means that a piece of software can use just the IO  
interface transparently without needing to know, whether the data to  
read (resp. to write) is coming from (resp. going to) a file or a  
string? Something comparable to stringstream in C++?

Regards  
Thomas

---

<div class="post-metadata">

**Author:** ![samoht](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ac8455/32.png) [@samoht](https://www.ruby-forum.com/u/samoht)\
**Post date:** [April 14, 2007, 12:28pm UTC](https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005/2 "2007-04-14T12:28:13Z")

</div>

On Apr 14, 2007, at 12:05 PM, Thomas H. wrote:

> is there a means that a piece of software can use just the IO  
> interface transparently without needing to know, whether the data to  
> read (resp. to write) is coming from (resp. going to) a file or a  
> string? Something comparable to stringstream in C++?

ri StringIO

– fxn

---

<div class="post-metadata">

**Author:** ![samoht](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ac8455/32.png) [@samoht](https://www.ruby-forum.com/u/samoht)\
**Post date:** [April 14, 2007, 1:56pm UTC](https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005/3 "2007-04-14T13:56:20Z")

</div>

On Apr 14, 12:27 pm, Xavier N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On Apr 14, 2007, at 12:05 PM, Thomas H. wrote:
> 
> > is there a means that a piece of software can use just the IO  
> > interface transparently without needing to know, whether the data to  
> > read (resp. to write) is coming from (resp. going to) a file or a  
> > string? Something comparable to stringstream in C++?
> 
> ri StringIO
> 
> – fxn

lol, funny, on my kubuntu-box, ri runned until yesterday, and now:  
ri StringIO  
/usr/lib/ruby/1.8/rdoc/ri/ri\_descriptions.rb:99:in `concat': can't convert nil into Array (TypeError) from /usr/lib/ruby/1.8/rdoc/ri/ri_descriptions.rb:99:in `merge\_in’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_reader.rb:56:in `get_class' from /usr/lib/ruby/1.8/rdoc/ri/ri_reader.rb:52:in `get\_class’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_reader.rb:31:in  
`find_class_by_name' from /usr/lib/ruby/1.8/rdoc/ri/ri_display.rb:97:in `display\_class\_info’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_display.rb:96:in  
`display_class_info' from /usr/lib/ruby/1.8/rdoc/ri/ri_display.rb:199:in `page’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_display.rb:77:in  
`display_class_info' from /usr/lib/ruby/1.8/rdoc/ri/ri_driver.rb:71:in `report\_class\_stuff’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_driver.rb:106:in  
`get_info_for' from /usr/lib/ruby/1.8/rdoc/ri/ri_driver.rb:135:in `process\_args’  
from /usr/lib/ruby/1.8/rdoc/ri/ri\_driver.rb:134:in  
`process\_args’  
from /usr/bin/ri:48

Sometimes I hate those automatic updates…

---

<div class="post-metadata">

**Author:** ![samoht](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ac8455/32.png) [@samoht](https://www.ruby-forum.com/u/samoht)\
**Post date:** [April 14, 2007, 4:45pm UTC](https://www.ruby-forum.com/t/operating-on-strings-using-io-interface/92005/4 "2007-04-14T16:45:33Z")

</div>

Xavier N. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote/schrieb  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> ri StringIO

Thanks, that’s exacly what I was looking for.

Regards  
Thomas
