2
public static Runnable reader() throws IOException {
    Log.e("Communication", "reader");
    din = new DataInputStream(sock.getInputStream());
    brdr = new BufferedReader(new InputStreamReader(din), 300);
    boolean done = false;
    while (!done) {
        try {
            char[] buffer = new char[200];
            int anzahlZeichen = brdr.read(buffer, 0, 200);
            String nachricht = new String(buffer, 0, anzahlZeichen);
            byte[] in = nachricht.getBytes("ISO-8859-1");
            for (int counter = 0; counter < nachricht.length(); counter++) {
                System.out.println(in);
            }
            if (nachricht != null)
                answer();
            System.out.println(nachricht);

        } catch (IOException ioe) {
            done = true;
        }
    }

    return null;
}

nachrichtStringを Byte[]に変換したいのですが、in取得できません。誰か助けてくれませんか?私は数字を受け取っているだけで、言葉や文字は受け取っていません。別の方法も歓迎します。私が得るのSystem.out.println(nachricht)は7回[B@41c04778だけですが、私は得るべきです01 02 03 04 05 06 07

4

2 に答える 2

2

あなたの問題はラインですSystem.out.println(in)

そのはずSystem.out.println(in[counter]);

于 2013-02-25T13:17:25.027 に答える
2

これ

[B@41c04778

バイト ( B ) の配列 ( [ ) を出力していることを示します。

toString()Java 配列には有用な実装がありません。上記は、将来同じことを行うため、理解しておくと役立ちます。他のプリミティブ型には明らかなニーモニックが存在します。

于 2013-02-25T13:21:11.680 に答える