--- !ruby/object:RI::MethodDescription 
aliases: []

block_params: 
comment: 
- !ruby/struct:SM::Flow::P 
  body: Reads at most <em>length</em> bytes from the I/O stream, or to the end of file if <em>length</em> is omitted or is <tt>nil</tt>. <em>length</em> must be a non-negative integer or nil. If the optional <em>buffer</em> argument is present, it must reference a String, which will receive the data.
- !ruby/struct:SM::Flow::P 
  body: At end of file, it returns <tt>nil</tt> or <tt>&quot;&quot;</tt> depend on <em>length</em>. <tt><em>ios</em>.read()</tt> and <tt><em>ios</em>.read(nil)</tt> returns <tt>&quot;&quot;</tt>. <tt><em>ios</em>.read(<em>positive-integer</em>)</tt> returns nil.
- !ruby/struct:SM::Flow::VERB 
  body: "   f = File.new(&quot;testfile&quot;)\n   f.read(16)   #=&gt; &quot;This is line one&quot;\n"
full_name: IO#read
is_singleton: false
name: read
params: |
  ios.read([length [, buffer]])    => string, buffer, or nil

visibility: public
