Java ネットワークプログラミング 【教えて!】 at TECH
[2ch|▼Menu]
329:デフォルトの名無しさん
06/09/07 13:32:07
>>318
>それで、なにが原因なんでしょか?何を指摘したいのか、さっぱり分かりません。
何の原因を聞いているのか知らんが、
>>311
>url がURLリンク(www.yahoo.co.jp)
>のとき全部取り出せないで途中で切れて終わってしまいます。
の原因だとしたら、
>byte[] buffer=new byte[1000*1000];
>int size=input.read(buffer);
が、「1000*1000バイトか、ストリームの終わりまで読みこむ」という意味の命令ではないこと。
実際に何バイト読み込むかは実装・クラス・状況次第。
だから、readの返り値を見て、ストリームの終わりに達するか、例外が発生するまで
読み込め、と言ってるんだが。

>どうも偉そうに聞こえるますが、その違いで何か関係があるなら、そのあたりを指摘すれば良いでしょう。
尻切れになる/ならないは別にして、application/octet-stream なストリームを、
InputStreamReaderで読んだら、取り返しがつかんだろ。byte[]とchar[]は可逆変換ではない。

>ところで、byteかcharかの違いで何か問題があるんでしょうか?
データ型としてのbyteとcharなら単に1バイトか2バイト幅かだけの違いだが、
Readerがcharで返すということは、Readerへの入力のbyteシーケンスを
指定されたencodingに従ってunicode (ucs2)に変換してるわけだ。
得られたchar[]なりStringを同じencodingでbyte[]に変換しても、
元のバイト列になる保証は無い。


次ページ
続きを表示
1を表示
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5399日前に更新/136 KB
担当:undef