Java ネットワークプログラミング 【教えて!】at TECHJava ネットワークプログラミング 【教えて!】 - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト350:デフォルトの名無しさん 06/09/08 09:52:26 >>329はやさしいなあ 351:デフォルトの名無しさん 06/09/08 10:15:56 >>349 > for (int k=0; size<buf.length && (k=in.read())!=-1;) > buf[size++]=(byte)k; これ、尻切れにはならんかもしれんが、最初に 0が入らんか? > int sz=in.read(buf, size, buf.length); InputStream の仕様では、size が 0以外の条件で この行を実行する場合 IndexOutOfBoundsException投げないといけない事になってる。 in.read(buf, size, buf.length - size) とかしないと。 あと、size>=buf.length の条件でループ抜けるなら size += sz やった後の方が良いぞ。 ついでに言うと、sz == 0 も特に要らない。 352:デフォルトの名無しさん 06/09/08 10:18:48 > これ、尻切れにはならんかもしれんが、最初に 0が入らんか? あ、入らないね。失敬失敬。 353:デフォルトの名無しさん 06/09/08 10:45:51 >>350確かにやさしいです。読み違えなかったらですけど・・ InputStream in=con.getInputStream (); byte[] buf=new byte[1000*1000]; int size=0; for (int k; size<buf.length; ++size) { k=in.read(); if (k!=-1) break; buf[size]=(byte)k; } >>341 がいいたいのはこれでしょ? for (int sz; size<buf.length; size+=sz;) { sz=in.read(buf, size, buf.length); if (sz==-1) break; } int InputStream.read(byte[],int,int)は結局どのあたりで使うのだろう・・ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch