1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public static byte[] toBytes(char[] chars, String charsetName) {
// On récupère le charset a utiliser pour la conversion
Charset cs = Charset.forName (charsetName);
// On mappe un CharBuffer sur notre tableau :
CharBuffer cb = CharBuffer.wrap(chars);
// On encode ce CharBuffer via le charset :
ByteBuffer bb = cs.encode (cb);
// On récupère le byte[] associé au ByteBuffer :
byte[] bytes = bb.array();
// On effectue une copie de la zone qui nous interresse :
// (le buffer peut être plus grand) :
byte[] result = Arrays.copyOf(bytes, bb.limit());
// On 'efface' le buffer du ByteBuffer :
Arrays.fill(bytes, (byte)0);
// Et on retourne le résultat :
return result;
} |
Partager