1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

[DOC] Revert previous merge (#6624)

Revert previous merge
This commit is contained in:
Burdette Lamar 2022-10-24 10:38:19 -05:00 committed by GitHub
parent 21fa0135a4
commit 841be6392e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
Notes: git 2022-10-24 15:38:39 +00:00
Merged-By: BurdetteLamar <BurdetteLamar@Yahoo.com>

View file

@ -87,11 +87,10 @@ Many examples here use these variables:
=== Basic \IO === Basic \IO
==== Reading and Writing You can perform basic stream \IO with these methods:
===== \Method <tt>#read</tt> - IO#read: Returns all remaining or the next _n_ bytes read from the stream,
for a given _n_:
Returns all remaining or the next +n+ bytes read from the stream, for a given +n+:
f = File.new('t.txt') f = File.new('t.txt')
f.read # => "First line\nSecond line\n\nFourth line\nFifth line\n" f.read # => "First line\nSecond line\n\nFourth line\nFifth line\n"
@ -101,9 +100,7 @@ Returns all remaining or the next +n+ bytes read from the stream, for a given +n
f.read(30) # => nil f.read(30) # => nil
f.close f.close
===== \Method <tt>#write</tt> - IO#write: Writes one or more given strings to the stream:
Writes one or more given strings to the stream:
$stdout.write('Hello', ', ', 'World!', "\n") # => 14 $stdout.write('Hello', ', ', 'World!', "\n") # => 14
$stdout.write('foo', :bar, 2, "\n") $stdout.write('foo', :bar, 2, "\n")
@ -120,8 +117,9 @@ which is the byte offset at which the next read or write is to occur.
A new stream has position zero (and line number zero); A new stream has position zero (and line number zero);
method +rewind+ resets the position (and line number) to zero. method +rewind+ resets the position (and line number) to zero.
===== \Method <tt>#tell</tt> The relevant methods:
- IO#tell (aliased as +#pos+):
Returns the current position (in bytes) in the stream: Returns the current position (in bytes) in the stream:
f = File.new('t.txt') f = File.new('t.txt')
@ -130,11 +128,7 @@ Returns the current position (in bytes) in the stream:
f.tell # => 12 f.tell # => 12
f.close f.close
Aliased as <tt>pos</tt>. - IO#pos=: Sets the position of the stream (in bytes):
===== \Method <tt>#pos=</tt>
Sets the position of the stream (in bytes):
f = File.new('t.txt') f = File.new('t.txt')
f.tell # => 0 f.tell # => 0
@ -142,9 +136,7 @@ Sets the position of the stream (in bytes):
f.tell # => 20 f.tell # => 20
f.close f.close
===== \Method <tt>#seek</tt> - IO#seek: Sets the position of the stream to a given integer +offset+
Sets the position of the stream to a given integer +offset+
(in bytes), with respect to a given constant +whence+, which is one of: (in bytes), with respect to a given constant +whence+, which is one of:
- +:CUR+ or <tt>IO::SEEK_CUR</tt>: - +:CUR+ or <tt>IO::SEEK_CUR</tt>:
@ -182,9 +174,7 @@ Sets the position of the stream to a given integer +offset+
f.tell # => 40 f.tell # => 40
f.close f.close
===== \Method <tt>#rewind</tt> - IO#rewind: Positions the stream to the beginning (also resetting the line number):
Positions the stream to the beginning (also resetting the line number):
f = File.new('t.txt') f = File.new('t.txt')
f.tell # => 0 f.tell # => 0
@ -199,33 +189,20 @@ Positions the stream to the beginning (also resetting the line number):
A new \IO stream may be open for reading, open for writing, or both. A new \IO stream may be open for reading, open for writing, or both.
===== \Method <tt>#close</tt> You can close a stream using these methods:
Closes the stream for both reading and writing. - IO#close: Closes the stream for both reading and writing.
- IO#close_read (not in \ARGF): Closes the stream for reading.
- IO#close_write (not in \ARGF): Closes the stream for writing.
===== \Method <tt>#close_read</tt> You can query whether a stream is closed using this method:
Closes the stream for reading, - IO#closed?: Returns whether the stream is closed.
Not in ARGF.
===== \Method <tt>#close_write</tt>
Closes the stream for writing
Not in ARGF.
===== \Method <tt>#closed?</tt>
Returns whether the stream is closed.
==== End-of-Stream ==== End-of-Stream
===== \Method <tt>#eof?</tt> You can query whether a stream is positioned at its end using
method IO#eof? (also aliased as +#eof+).
Returns whether a stream is positioned at its end; aliased as +#eof+.
===== Repositioning to End-of-Stream
You can reposition to end-of-stream by reading all stream content: You can reposition to end-of-stream by reading all stream content:
@ -243,11 +220,9 @@ Or by using method IO#seek:
=== Line \IO === Line \IO
You can process an \IO stream line-by-line. You can read an \IO stream line-by-line using these methods:
===== \Method <tt>#each_line</tt> - IO#each_line: Passes each line to the block:
Passes each line to the block:
f = File.new('t.txt') f = File.new('t.txt')
f.each_line {|line| p line } f.each_line {|line| p line }
@ -271,9 +246,7 @@ Output:
"rth line\n" "rth line\n"
"Fifth line\n" "Fifth line\n"
===== \Method <tt>#gets</tt> - IO#gets (also in Kernel): Returns the next line (which may begin mid-line):
Returns the next line (which may begin mid-line); also in Kernel:
f = File.new('t.txt') f = File.new('t.txt')
f.gets # => "First line\n" f.gets # => "First line\n"
@ -283,15 +256,10 @@ Returns the next line (which may begin mid-line); also in Kernel:
f.readlines # => ["Fifth line\n"] f.readlines # => ["Fifth line\n"]
f.gets # => nil f.gets # => nil
===== \Method <tt>#readline</tt> - IO#readline (also in Kernel; not in StringIO):
Like #gets, but raises an exception at end-of-stream. Like #gets, but raises an exception at end-of-stream.
Also in Kernel; not in StringIO. - IO#readlines (also in Kernel): Returns all remaining lines in an array;
===== \Method <tt>#readlines</tt>
Returns all remaining lines in an array;
may begin mid-line: may begin mid-line:
f = File.new('t.txt') f = File.new('t.txt')
@ -299,27 +267,21 @@ may begin mid-line:
f.readlines # => ["ine\n", "\n", "Fourth line\n", "Fifth line\n"] f.readlines # => ["ine\n", "\n", "Fourth line\n", "Fifth line\n"]
f.readlines # => [] f.readlines # => []
Also in Kernel.
===== Optional Reader Arguments
Each of these reader methods may be called with: Each of these reader methods may be called with:
- An optional line separator, +sep+. - An optional line separator, +sep+.
- An optional line-size limit, +limit+. - An optional line-size limit, +limit+.
- Both +sep+ and +limit+. - Both +sep+ and +limit+.
===== \Method <tt>#puts</tt> You can write to an \IO stream line-by-line using this method:
Writes objects to the stream: - IO#puts (also in Kernel; not in \StringIO): Writes objects to the stream:
f = File.new('t.tmp', 'w') f = File.new('t.tmp', 'w')
f.puts('foo', :bar, 1, 2.0, Complex(3, 0)) f.puts('foo', :bar, 1, 2.0, Complex(3, 0))
f.flush f.flush
File.read('t.tmp') # => "foo\nbar\n1\n2.0\n3+0i\n" File.read('t.tmp') # => "foo\nbar\n1\n2.0\n3+0i\n"
Also in Kernel; not in StringIO.
==== Line Separator ==== Line Separator
The default line separator is the given by the global variable <tt>$/</tt>, The default line separator is the given by the global variable <tt>$/</tt>,
@ -406,21 +368,13 @@ which is the non-negative integer line number
in the stream where the next read will occur. in the stream where the next read will occur.
The line number is the number of lines read by certain line-oriented methods The line number is the number of lines read by certain line-oriented methods
({::foreach}[rdoc-ref:IO.foreach], (IO.foreach, IO#each_line, IO#gets, IO#readline, and IO#readlines)
{#each_line}[rdoc-ref:io_streams.rdoc@Method+-23each_line],
{#gets}[rdoc-ref:io_streams.rdoc@Method+-23gets],
{#readline}[rdoc-ref:io_streams.rdoc@Method+-23readline],
{#readlines}[rdoc-ref:io_streams.rdoc@Method+-23readlines])
according to the given (or default) line separator +sep+. according to the given (or default) line separator +sep+.
A new stream is initially has line number zero (and position zero); A new stream is initially has line number zero (and position zero);
method +rewind+ resets the line number (and position) to zero. method +rewind+ resets the line number (and position) to zero.
===== \Method <tt>#lineno</tt> \Method IO#lineno returns the line number.
Returns the line number.
===== Changes to the Line Number
Reading lines from a stream usually changes its line number: Reading lines from a stream usually changes its line number:
@ -460,11 +414,9 @@ that determine how lines in a stream are to be treated:
=== Character \IO === Character \IO
You can process an \IO stream character-by-character. You can process an \IO stream character-by-character using these methods:
===== \Method <tt>#getc</tt> - IO#getc: Reads and returns the next character from the stream:
Reads and returns the next character from the stream:
f = File.new('t.rus') f = File.new('t.rus')
f.getc # => "т" f.getc # => "т"
@ -473,14 +425,12 @@ Reads and returns the next character from the stream:
f.getc # => "т" f.getc # => "т"
f.getc # => nil f.getc # => nil
===== \Method <tt>#readchar</tt> - IO#readchar (not in \StringIO):
Like #getc, but raises an exception at end-of-stream:
Like #getc, but raises an exception at end-of-stream. f.readchar # Raises EOFError.
Not in \StringIO.
===== \Method <tt>#ungetc</tt>
- IO#ungetc (not in \ARGF):
Pushes back ("unshifts") a character or integer onto the stream: Pushes back ("unshifts") a character or integer onto the stream:
path = 't.tmp' path = 't.tmp'
@ -490,11 +440,7 @@ Pushes back ("unshifts") a character or integer onto the stream:
f.read # => "тfoo" f.read # => "тfoo"
end end
Not in \ARGF. - IO#putc (also in Kernel): Writes a character to the stream:
===== \Method <tt>#putc</tt>
Writes a character to the stream:
File.open('t.tmp', 'w') do |f| File.open('t.tmp', 'w') do |f|
f.putc('т') f.putc('т')
@ -504,11 +450,7 @@ Writes a character to the stream:
end end
File.read('t.tmp') # => "тест" File.read('t.tmp') # => "тест"
Also in Kernel. - IO#each_char: Reads each remaining character in the stream,
===== \Method <tt>#each_char</tt>
Reads each remaining character in the stream,
passing the character to the given block: passing the character to the given block:
File.open('t.rus') do |f| File.open('t.rus') do |f|
@ -523,11 +465,9 @@ Output:
=== Byte \IO === Byte \IO
You can process an \IO stream byte-by-byte. You can process an \IO stream byte-by-byte using these methods:
===== \Method <tt>#getbyte</tt> - IO#getbyte: Returns the next 8-bit byte as an integer in range 0..255:
Returns the next 8-bit byte as an integer in range 0..255:
File.read('t.dat') File.read('t.dat')
# => "\xFE\xFF\x99\x90\x99\x91\x99\x92\x99\x93\x99\x94" # => "\xFE\xFF\x99\x90\x99\x91\x99\x92\x99\x93\x99\x94"
@ -541,27 +481,19 @@ Returns the next 8-bit byte as an integer in range 0..255:
f.getbyte # => 148 f.getbyte # => 148
f.getbyte # => nil f.getbyte # => nil
===== \Method <tt>#readbyte</tt> - IO#readbyte (not in \StringIO):
Like #getbyte, but raises an exception if at end-of-stream: Like #getbyte, but raises an exception if at end-of-stream:
f.readbyte # Raises EOFError. f.readbyte # Raises EOFError.
Not in \StringIO. - IO#ungetbyte (not in \ARGF):
===== \Method <tt>#ungetbyte</tt>
Pushes back ("unshifts") a byte back onto the stream: Pushes back ("unshifts") a byte back onto the stream:
f.ungetbyte(0) f.ungetbyte(0)
f.ungetbyte(01) f.ungetbyte(01)
f.read # => "\u0001\u0000" f.read # => "\u0001\u0000"
Not in \ARGF. - IO#each_byte: Reads each remaining byte in the stream,
===== \Method <tt>#each_byte</tt>
Reads each remaining byte in the stream,
passing the byte to the given block: passing the byte to the given block:
f.seek(-4, :END) f.seek(-4, :END)
@ -576,12 +508,8 @@ Output:
=== Codepoint \IO === Codepoint \IO
You can process an \IO stream codepoint-by-codepoint. You can process an \IO stream codepoint-by-codepoint using method
+#each_codepoint+:
===== \Method +each_codepoint+
Reads each remaining codepoint in the stream,
passing the codepoint to the given block:
a = [] a = []
File.open('t.rus') do |f| File.open('t.rus') do |f|