IO.read$B$H%P%$%J%j%b!<%I(B

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

[ruby-talk:196933]e$B$G$^$?$7$F$be(BIO.reade$B$H%P%$%J%j%b!<%I$NLdBj$,e(B
e$B=P$F$k$=$&$J$N$G$9$,!"<B:]8=>u$OITJX$J$N$G$J$s$H$+$7$?$$$H$3e(B
e$B$m$G$9!#e(B
e$B$H$$$&$o$1$G4v$D$+BP:v0F!#e(B

(1) e$B%F%-%9%H%b!<%I$r<N$F$ke(B
-> e$B$A$g$C$H$R$I$$$+$b!#e(Brubye$B:n$k$[$&$O3Z$K$J$k$1$I!#e(B
(2) BinaryIO < IO e$B$r:n$ke(B
-> TextIOe$B$b:n$k$+$I$&$+$H$+9M$($@$9$HLk$bL2$l$J$$!#e(B
(3) IO.read(filename, offset = nil, length = nil, binary = false)
->
e$B%P%$%J%j%b!<%I$K$9$k$?$a$K!"$$$A$$$Ae(B2e$B2se(Bnile$B$r=q$/$N$O$ae(B
e$B$s$I$/$5$$$7!"%P%$%J%j%b!<%I$K$9$k$?$a$@$1$KBhe(B4e$B0z?t$re(B
e$B>CHq$7$F$b$$$$$N$@$m$&$+!#e(B
(4) IO.read(filename, offset = nil, length = nil, flags = 0)
-> flagse$B$K$Oe(BFile::BINARYe$B$H$+F~$l$k!#$G$b!"$=$l0J30$N%U%ie(B
e$B%0$O$=$b$=$b;H$o$J$$$s$8$ce(B?
(5) IO.read(filename, binary = false, offset = nil, length = nil)
-> e$B$3$N>l9g!“Bhe(B2e$B0z?t$,?tCM$J$ie(B(3)e$B$H2r<a$9$k!#e(B
(6) IO.binmode=
-> e$B%0%m!<%P%k$K>uBV$rJQ99$9$k$N$O$A$g$C$H$J$”!#e(B
(7) e$B%-!<%o!<%I0z?t$,<BAu$5$l$ke(B2030e$BG/$@$+$^$GBT$De(B
-> e$BBT$F$^$;$se(B…

e$B$=$l$G$O!#e(B

e$B4d7n$H?=$7$^$9!#e(B

06/06/13 e$B$Ke(B U.Nakamura[email protected]
e$B$5$s$O=q$-$^$7$?e(B:

(7) e$B%-!<%o!<%I0z?t$,<BAu$5$l$ke(B2030e$BG/$@$+$^$GBT$De(B
→ e$BBT$F$^$;$se(B…

e$B%*%W%7%g%J%k$J0z?t$Oe(BHashe$B$GM?$($k!"$H$$$&$N$O$I$&$G$7$g$&$+!#e(B

IO.read(filename[, length = nil[, offset = nil]] [, options = {}])

e$BAH$9~$%/%i%9$G$O$3$&$$$&7A$G0z?t$r<u$1<h$k%a%=%C%I$re(B
(e$B8+Mn$H$7$F$$$k$+$b$7$l$^$;$s$,e(B)e$B8+$+$1$J$$$N$Ge(B
Rubye$BA4BN$H$7$F$N$J$s$i$+$N%]%j%7!<$,$"$k$h$&$K$b;W$$$^$9$,!"e(B
Ruby 1.9e$B$G$7$?$i%-!<%o!<%I0z?t$C$]$/=q$1$k$N$G!“e(B
e$BK\Ev$N%-!<%o!<%I0z?t$,<BAu$5$l$?8e$G$be(B
e$B$=$N$^$^;H$($k$HNI$$$J$”$H9M$($F$^$9!#e(B

IO.read(filename, binary: true, offset: num, length: len)

e$B=q$$$F$$$k$&$A$K0B0W$J2r7hK!$K$b8+$($F$-$^$7$?!D!De(B

artone$B$G$9!#e(B

e$B%a%=%C%I$K$h$C$FF0:n$rJQ$($k$H$$$&$N$G$O$I$&$G$7$g$&$+!)e(B
e$B@N$Ne(BTurboCe$B$@$He(Bfopene$B$Ke(Bbe$B$NB>$Ke(Bte$B$H$$$&$N$b;XDj$G$-$?$N$G!"$=$l$r1gMQ$7$Fe(B3e$B%9e(B
e$B%F!<%H$H$7$F9M$($^$9!Je(BANSI
Ce$B$K$OL5$$$H;W$C$?$1$Ie(Bgooglee$B$Ge(Bfopen rte$B$G8!:w$9e(B
e$B$k$H$?$/$5$s0z$C$+$+$k$7:#D4$Y$?$ie(BVC++8e$B$Ne(Bfopene$B$G$bMxMQ$G$-$k$N$G$9$M!K!#e(B
r e$B!D!De(B e$B%K%e!<%H%i%ke(B
rt e$B!D!De(B e$B%F%-%9%H!J8=:$Ne(Bre$B$H40A4$K8_49!Ke(B
rb e$B!D!De(B e$B%P%$%J%j!J8=:
$Ne(Brbe$B$H40A4$K8_49!Ke(B
e$B%K%e!<%H%i%k$N>l9g!“e(Breadlines, readline, #each, #each_line, #gets,
#puts
e$B$N$h$&$J9T;X8~$N%a%=%C%I$He(Bgetc,
ungetce$B$N$h$&$JJ8;z$r0U<1$7$?$b$N$K$D$$$Fe(B
e$B$Oe(B\r\ne$B$r2~9T%3!<%I$H$7$F=hM}$7!”$=$l0J30$Ne(B#reade$B!"e(B#writee$B!"e(B#seeke$B!JHyL/$+$J!)e(B
e$B$G$b%F%-%9%H%b!<%I$Ge(Bseeke$B$9$k$N$O@7W%%9$@$H;W$&!K$J$I$K$D$$$F$O%P%$%J%j!<e(B
e$B%b!<%I$H$7$F07$&$H$$$&$3$H$G$9!#e(B
e$B$3$N$h$&$K$7$F$$1$P!"$$=$i$/BgB??t$N?M$Oe(Brte$B$H$+e(Brbe$B$H$+=q$+$J$/$F$b4|BTDLe(B
e$B$j$NF0:n$K$J$k$H;W$$$^$9!J>/$J$/$F$b;d$O=u$+$j$=$&$G$9!K!#e(B


arton [email protected]

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28723] Re: IO.reade$B$H%P%$%J%j%b!<%Ie(B”
on Jun.14,2006 01:06:55, [email protected] wrote:
| e$B%a%=%C%I$K$h$C$FF0:n$rJQ$($k$H$$$&$N$G$O$I$&$G$7$g$&$+!)e(B

e$BLLGr$$%“%$%G%”$@$H;W$$$^$9!#e(B
e$B$G$b!"$3$N>l9g!"e(BIO.reade$B$O$I$&$J$k$N$G$7$g$&e(B?
e$B%b!<%I$r;XDj$G$-$J$$$3$H<+BN$,LdBj$J$N$G$9$,!“e(B
IO.open(name){|f| f.read}
e$B$NC;=L7O$H$_$J$7$F!”%K%e!<%H%i%k!\e(BIO#reade$B$G%P%$%J%j07$$e(B?

e$B$“$H!“e(BIRCe$B$GOC$r$7$F$$$F@h$N%a!<%k$G<h$j$3$$7$?0F$,4v$D$+$”$Ce(B
e$B$?$N$G!”$=$l$b5s$2$F$*$-$^$9!#e(B

(8) e$B%O%C%7%e$r0z?t$H$7$F<u$1<h$k$h$&$K$9$ke(B
→ [ruby-dev:28722]e$B$N4d7n$5$s$N0F$HF1$8$G$9!#e(B
(9) IO.readbin(e$B$^$?$Oe(BIO.binread)e$B$rDI2C$9$ke(B
→ e$BL>A0$b$$$^$$$A$@$7!"$J$s$+$3$&e(B…
(10) e$BBh0l0z?t$KG[Ns$r<u$1<h$l$k$h$&$K$7!"G[Ns$N>l9g$Oe(B2e$BHVL$Ne(B
e$BMWAG$r%b!<%I;XDj$H$_$J$9e(B
→ Process.exece$B$C$]$$0F!#e(B

e$B$=$l$G$O!#e(B

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28723] Re: IO.reade$B$H%P%$%J%j%b!<%Ie(B”
on Wed, 14 Jun 2006 01:06:55 +0900, arton [email protected]
writes:

|r e$B!D!De(B e$B%K%e!<%H%i%ke(B
|rt e$B!D!De(B e$B%F%-%9%H!J8=:$Ne(Bre$B$H40A4$K8_49!Ke(B
|rb e$B!D!De(B e$B%P%$%J%j!J8=:
$Ne(Brbe$B$H40A4$K8_49!Ke(B
|e$B%K%e!<%H%i%k$N>l9g!“e(Breadlines, readline, #each, #each_line, #gets, #puts
|e$B$N$h$&$J9T;X8~$N%a%=%C%I$He(Bgetc, ungetce$B$N$h$&$JJ8;z$r0U<1$7$?$b$N$K$D$$$Fe(B
|e$B$Oe(B\r\ne$B$r2~9T%3!<%I$H$7$F=hM}$7!”$=$l0J30$Ne(B#reade$B!"e(B#writee$B!"e(B#seeke$B!JHyL/$+$J!)e(B
|e$B$G$b%F%-%9%H%b!<%I$Ge(Bseeke$B$9$k$N$O@7W%%9$@$H;W$&!K$J$I$K$D$$$F$O%P%$%J%j!<e(B
|e$B%b!<%I$H$7$F07$&$H$$$&$3$H$G$9!#e(B

e$BLLGr$$%“%$%G%#%”$@$H;W$&$N$G$9$,!"%a%=%C%I$4$H$K%P%$%J%j%b!<e(B
e$B%I$H%F%-%9%H%b!<%I$r9T$C$?$jMh$?$j$C$F4JC1$K$G$-$k$b$s$G$7$?$Ce(B
e$B$1!#$?$7$+$9$G$K%P%C%U%!$KF~$C$F$?$i%(%i!<$r=P$9$h$&$J5$$,$9e(B
e$B$k$s$G$9$,!#e(B

e$B!Ve(Buniversal newlinee$B$r<BAu$;$h!W$H$$$&E7$N@<$,J9$3$($?$h$&$Je(B
e$B5$$,$9$k$s$G$9$,!"$=$l$,$I$s$J$b$N$+$OMWD4::$G$9e(B(PEP-278)e$B!#e(B

                            e$B$^$D$b$He(B e$B$f$-$R$me(B /:|)

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28724] Re: IO.reade$B$H%P%$%J%j%b!<%Ie(B”
on Jun.14,2006 01:28:19, [email protected] wrote:
| (10) e$BBh0l0z?t$KG[Ns$r<u$1<h$l$k$h$&$K$7!"G[Ns$N>l9g$Oe(B2e$BHVL$Ne(B
| e$BMWAG$r%b!<%I;XDj$H$_$J$9e(B
| → Process.exece$B$C$]$$0F!#e(B
e$B$A$c$&$A$c$&!"e(BKernel.exece$B$C$]$$0F!#e(B

e$B$=$l$G$O!#e(B

artone$B$G$9!#e(B

e$BLLGr$$%“%$%G%”$@$H;W$$$^$9!#e(B
e$B$I$&$b!#e(B
e$B$G$b!"$3$N>l9g!"e(BIO.reade$B$O$I$&$J$k$N$G$7$g$&e(B?
e$B%b!<%I$r;XDj$G$-$J$$$3$H<+BN$,LdBj$J$N$G$9$,!“e(B
IO.open(name){|f| f.read}
e$B$NC;=L7O$H$_$J$7$F!”%K%e!<%H%i%k!\e(BIO#reade$B$G%P%$%J%j07$$e(B?
e$B$=$&$G$9!#e(B
File.read(‘filename’) == File.open(‘filename’, ‘r’){|f| f.read}
File.read(‘filename’) == File.open(‘filename’, ‘rb’){|f| f.read}
File.read(‘filename’) != File.open(‘filename’, ‘rt’){|f| f.read}
e$B$H$J$j$^$9!#e(B
e$BF1MM$Ke(B
File.readlines(‘filename’) == File.open(‘filename’, ‘r’){|f|
f.readlines}
File.readlines(‘filename’) == File.open(‘filename’, ‘rt’){|f|
f.readlines}
File.readlines(‘filename’) != File.open(‘filename’, ‘rb’){|f|
f.readlines}
e$B$G$9!#e(B


arton [email protected]

artone$B$G$9!#e(B

e$BLLGr$$%“%$%G%#%”$@$H;W$&$N$G$9$,!“%a%=%C%I$4$H$K%P%$%J%j%b!<e(B
e$B%I$H%F%-%9%H%b!<%I$r9T$C$?$jMh$?$j$C$F4JC1$K$G$-$k$b$s$G$7$?$Ce(B
e$B$1!#$?$7$+$9$G$K%P%C%U%!$KF~$C$F$?$i%(%i!<$r=P$9$h$&$J5$$,$9e(B
e$B$k$s$G$9$,!#e(B
e$Be$O%P%$%J%j!<%b!<%I$G3+$$$Fe(BRubye$BB&$GI,MW$K1~$8$Fe(B\re$B$r;OKv$9$k$3$H$K$Je(B
e$B$k$H;W$$$^$9!#e(B
readlinee$B$7$Fe(Bseeke$B$GA0$KLa$k$H$:$l$F$$$/$N$G6C$-:G>.K!B’$KH?$9$k$N$,LdBjE@e(B
e$B$@$H$O;W$$$^$9$,!”$=$N$h$&$J=hM}$,I,MW$J$i$PL@<(E*$K$I$A$i$N%b!<%I$G<B9Te(B
e$B$9$k$N$+7hDj$5$;$k$7$+$J$$$G$7$g$&!#e(B
e$B$^$?$O!“%K%e!<%H%i%k$N>l9g!”:G=i$N%a%=%C%I8F$S=P$7$K2?$rMxMQ$7$?$+$G8e$Ne(B
e$B%b!<%I$r7hDj$9$k$H$$$&;EMM$K$9$k$+!#e(B

e$B!Ve(Buniversal newlinee$B$r<BAu$;$h!W$H$$$&E7$N@<$,J9$3$($?$h$&$Je(B
e$B5$$,$9$k$s$G$9$,!"$=$l$,$I$s$J$b$N$+$OMWD4::$G$9e(B(PEP-278)e$B!#e(B
wktke$B!J$H=q$/$H$3$m$+$J!)!Ke(B


arton [email protected]

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:28809] Re: IO.reade$B$H%P%$%J%j%b!<%Ie(B”
on Jun.23,2006 22:50:03, [email protected] wrote:
| > [ruby-talk:196933]e$B$G$^$?$7$F$be(BIO.reade$B$H%P%$%J%j%b!<%I$NLdBj$,e(B
| > e$B=P$F$k$=$&$J$N$G$9$,!"<B:]8=>u$OITJX$J$N$G$J$s$H$+$7$?$$$H$3e(B
| > e$B$m$G$9!#e(B
| > e$B$H$$$&$o$1$G4v$D$+BP:v0F!#e(B
|
| e$B$A$g$C$H$7$?5?Ld$G$9$,!"0F$r=P$9$N$O$$$$$H$7$F!“Hf3S8!F$$7$Fe(B
| e$B0lHV$$$$$N$rA*$s$G!”$H$$$C$?$3$H$O$7$J$$$s$G$7$g$&$+!#e(B

e$B$3$3$GHf3S8!F$$9$k$?$a$K!“OC$NEZBf$H$7$F;W$$$D$/$b$N$r5s$2$^e(B
e$B$7$?!#e(B
e$B3F0F$K$D$$$F$N$$$6$C$Q$J7g4Y$O4{$K=R$Y$?$D$b$j$J$N$G!”$I$le(B
e$B$,$$$A$P$s%^%7$=$&$G$9$+e(B(e$B$“$k$$$O!”$b$C$H$$$$0F$,$"$j$^$9$+e(B)e$B!"e(B
e$B$H$$$&AjCL$N$D$b$j$G$7$?!#e(B

e$B$=$&$$$($P;d$N9M$($r=R$Y$F$$$^$;$s$G$7$?$,!"LdBj$N2r7h$Oe(B1.8e$B$Ge(B
e$B5a$a$i$l$F$$$k$H;W$C$F$$$k$N$G!"8_49@-$rB;$J$o$J$$2r7h:v$H$7e(B
e$B$Fe(B(3)e$B!"e(B(4)e$B!“e(B(5)e$B$N$$$:$l$+$,$$$$$N$G$O$J$$$+$H9M$($F$$$^$9!#e(B
e$B$^$?$O!”$J$K$b$7$J$$$+!#e(B

e$B$=$l$G$O!#e(B

In article [email protected],
“U.Nakamura” [email protected] writes:

[ruby-talk:196933]e$B$G$^$?$7$F$be(BIO.reade$B$H%P%$%J%j%b!<%I$NLdBj$,e(B
e$B=P$F$k$=$&$J$N$G$9$,!"<B:]8=>u$OITJX$J$N$G$J$s$H$+$7$?$$$H$3e(B
e$B$m$G$9!#e(B
e$B$H$$$&$o$1$G4v$D$+BP:v0F!#e(B

e$B$A$g$C$H$7$?5?Ld$G$9$,!"0F$r=P$9$N$O$$$$$H$7$F!“Hf3S8!F$$7$Fe(B
e$B0lHV$$$$$N$rA*$s$G!”$H$$$C$?$3$H$O$7$J$$$s$G$7$g$&$+!#e(B