http://www.hellohiro.com/socket.htm
のはなしなんですけど。元々Javaの入出力はどうしてこんなにめんどいのかと思ってたのですが
BufferedReader in = new BufferedReader( new InputStreamReader( socket.getInputStream()));
socket.getInputStream -> InputStreamReader -> BufferedReader とどうしてこんなにラップする必要があるんだよ。socket.getInputStream.read**じゃダメなのか?
結論から言えば
- socket.getInputStreamのストリームからはバイトデータをreadできる
- InputStreamReaderはchar単位でreadできる
- BufferedReaderはバッファ可能。String単位でreadできる
こんな感じでしょうか。分からないではないけど・・・。javaは簡単な言語なのに、ヘンなとこだけむずかしーんだよなあ。もう入出力は全部buffered I/Oでいーじゃん。だからJavaのI/O処理は面倒なんだよな。