Revised: Mar./10th/2002
$BB?$/$N8@8l$G%Q%$%W$H8@$&;EAH$_$,Ds6!$5$l$F$$$^$9!#$=$l$i$O0lHL$K!"$"$k%W%m%;%9$N=PNO$rJL$N%W%m%;%9$NF~NO$K7R$2$k$3$H$G$9!#(B
$BNc$($P(B UNIX $B7O(B OS $B$G$O!"%3%^%s%I(B "cat /etc/passwd | wc -l
" $B$H$9$k$3$H$G!"(B "cat /etc/passwd
" $B$N=PNO$r(B "wc -l
" $B$NF~NO$KM?$($k$3$H$,=PMh$^$9!#(B Java $B$G$O!"J8;z%9%H%j!<%`$N%Q%$%W$H%P%$%H%9%H%j!<%`$N%Q%$%W$,MQ0U$5$l$F$$$^$9!#(B
$BJ8;z%9%H%j!<%`(B |
PipedReader PipedWriter
|
---|---|
$B%P%$%H%9%H%j!<%`(B |
PipedInputStream PipedOutputStream
|
$BNc$($P!"%a%=%C%I$NCf$G
PipedWriter pipeOut = new PipedWriter(); PipedReader pipeIn = new PipedReader(pipeOut);
$B$3$NNc$G$O!"(B $BNc$($P!"$3$l$KB3$$$F
$B$3$N%W%m%;%9$G(B $B$3$N%W%m%;%9$r $B
$Btest.txt $B$,B8:_$7$?>l9g$N $B%3%^%s%I%i%$%s!'(BpipeOut
$B$+$ipipeOut
$B$r$3$N%a%=%C%IFb$G=hM}$7$FLa$jCM$K(B pipeIn
$B$r;XDj$9$l$P!"$3$N%a%=%C%I$N=hM}7k2L$r=q$-9~$`%9%H%j!<%`$r!"FI$_9~$_$N%9%H%j!<%`$K%Q%$%W$rDL$7$F7R$2$i$l$k$o$1$G$9!#(B
// $B%U%!%$%k$N%$%s%9%?%s%92=(B
FileReader source = new FileReader("words.txt");
// $BFI$_9~$_%P%C%U%!$G%i%C%W(B
BufferedReader in = new BufferedReader(source);
// $B=q$-9~$_$N%Q%$%W$r(B PrintWriter $B$G%i%C%W(B
PrintWriter out = new PrintWriter(pipeOut);
// $BFI$_9~$_%P%C%U%!$+$iFI$_9~$s$G=q$-9~$_(B
String line;
while ((line = in.readLine()) != null) {
out.println(line);
out.flush();
}
out.close();
out
$B$K=q$-9~$^$l$?%b%N$O%Q%$%W%9%H%j!<%`(B PipeOut
$B$KEO$5$l!"%Q%$%W$rDL$C$F(B pipeIn
$B$+$iFI$_9~$`$3$H$,=PMh$^$9!#=>$C$F!"$3$N%a%=%C%I$G(B return pipeIn;
$B$H$9$l$P!"
source
$B$GpipeOut $B$K=q$-9~$s$G!"$=$l$r(B pipeOut
$B$K=PNO$7$FJV$9$3$H$,2DG=$G$9!#(B$B%5%s%W%k(B
PipeTest.java
:
import java.io.*;
import java.util.*;
class PipeTest {
public static void main(String[] args) throws IOException {
// $B%U%!%$%k$N%$%s%9%?%s%92=(B
FileReader text = new FileReader(args[0]);
// $B%Q%$%W$rMxMQ$7$?J#?t$N=hM}(B
Reader nlText = nl(tac(nl(text)));
// $BI8=`=PNO(B
BufferedReader in = new BufferedReader(nlText);
String line;
while ((line = in.readLine()) != null) {
System.out.println(line);
}
in.close();
}
// $B%Q%$%W$rMxMQ$7$?=hM}!'9THV9fIU2C(B
static Reader nl(Reader source) throws IOException {
BufferedReader in = new BufferedReader(source);
// $BFI$_9~$_$H=q$-9~$_$N%Q%$%W$r$D$J$2$k(B
PipedWriter pipeOut = new PipedWriter();
PipedReader pipeIn = new PipedReader(pipeOut);
PrintWriter out = new PrintWriter(pipeOut);
// out $B$K=hM}(B
String line;
int i=0;
while ((line = in.readLine()) != null) {
out.println(++i + ": " + line);
out.flush();
}
out.close();
// $BFI$_9~$_%Q%$%W$rJV$9(B
return pipeIn;
}
// $B%Q%$%W$rMxMQ$7$?=hM}!'5U=g$KJB$YBX$((B
static Reader tac(Reader source) throws IOException {
BufferedReader in = new BufferedReader(source);
// $BFI$_9~$_$H=q$-9~$_$N%Q%$%W$r$D$J$2$k(B
PipedWriter pipeOut = new PipedWriter();
PipedReader pipeIn = new PipedReader(pipeOut);
PrintWriter out = new PrintWriter(pipeOut);
// out $B$K=hM}(B
Stack rtext = new Stack();
String line;
int i=0;
while ((line = in.readLine()) != null) {
rtext.push(line);
}
while (!rtext.empty()) {
out.println(rtext.pop());
out.flush();
}
out.close();
// $BFI$_9~$_%Q%$%W$rJV$9(B
return pipeIn;
}
}
test.txt
:
$B$3$s$K$A$O(B
Hello World.
$B$5$h$&$J$i(B
Bye World.
C:\IO>javac PipeTest.java
C:\IO>java PipeTest test.txt
1: 5: Bye World.
2: 4: $B$5$h$&$J$i(B
3: 3:
4: 2: Hello World.
5: 1: $B$3$s$K$A$O(B
C:\IO>
Copyright © 2002 SUGAI, Manabu. All Rights Reserved.
SEO
[PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送