0

このコードを使用して入力ストリームを読み取っていますが、機能していません。バッファにガベージ値を与えています。以下のコードの何が問題なのですか: //mInputStream は FileInputStream のオブジェクトです

buf = new byte[4];
int ret = 0;

l("run");
try {
    while ( (ret = mInputStream.read(buf) )!= -1) {
        l("No.of bytes received:"+ret);
        l("Data received length :"+buf.length);
        l("Data received: "+buf.toString());
    }
} catch (IOException e) {
    l("IO exception in receiving");
}
4

2 に答える 2

0

このコードを試すことができます:

BufferedReader r = new BufferedReader(new InputStreamReader(mInputStream));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
    total.append(line);
}
l("String: " + total);

出力を投稿しますか?

于 2011-11-09T12:51:21.527 に答える
0

ご存知のように、Java のすべてのクラスは Object クラスを拡張します。クラスのすべてのインスタンスには、Object クラスから継承された toString メソッドがあり、[クラス名]@[インスタンス ID] を出力します。buf.toString() がクラス名 (B) とその ID (40533870) を返すようです。一度に 1 つのインデックスの buf の内容を確認してみてください。

于 2012-10-03T21:41:33.780 に答える