2

String一度 & に変換された big があり、ByteBuffer後で何度か読んでいるときに、String(テキストの概要) の一部だけを表示する必要があるため、 の一部のみを に変換したいと考えていByteBufferますString

Bytebuffer[全体をString&に変換してから使用するsubstring()]ではなく、バイトバッファの一部のみを文字列に変換することは可能ですか?

4

2 に答える 2

3
try {
    ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(yourstr));
    bbuf.position(0);
    bbuf.limit(200);
    CharBuffer cbuf = decoder.decode(bbuf);
    String s = cbuf.toString();
    System.out.println(s);
} catch (CharacterCodingException e) {
}

これは、バイト バッファから 0.byte から 200 で終わる文字を返す必要があります。

というより:

    ByteBuffer bbuf = ByteBuffer.wrap(yourstr.getBytes());
    bbuf.position(0);
    bbuf.limit(200);

    byte[] bytearr = new byte[bbuf.remaining()];
    bbuf.get(bytearr);
    String s = new String(bytearr);

同じことを行いますが、明示的な文字のデコード/エンコードは行いません。

もちろん、デコードはのコンストラクターで行われ、String sプラットフォームに依存するため、注意してください。

于 2012-06-26T08:02:43.210 に答える