2

Androidのsqliteに長い文字列を格納したいです。私はそれをsqliteに書きます:

String content = bodytext.toString();
    byte[] contentByte = content.getBytes();
    Log.d("bytetoString",new String(contentByte));
    String sql1 = "insert into content(id,content) values( '" + messageID
            + "','" + contentByte + "');";
    db.execSQL(sql1); 

そして私はそれを読んだ:

String sql = "select * from content where id='" + messageID + "'";
    Cursor temp = db.rawQuery(sql, null);
    if (temp.moveToNext()) {
        byte[] contentByte = temp.getBlob(temp.getColumnIndex("content"));
        String sb = new String(contentByte);
        Log.d("String",sb);
        temp.close();
        return sb;
    }

しかし、今読んだ文字列を印刷すると。「[B@41431930??」のようなものが出力されます。何か問題がありますか?

4

1 に答える 1

3

これは配列であり、 toString() はメモリアドレスのみを出力します。それがあなたが見ている理由です [B@41431930??

読み取り可能な値が必要な場合は、次のようなものを使用しますjava.util.Arrays.toString(contentByte)

于 2012-08-10T02:28:57.007 に答える