English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El método getBytes() de String en Java codifica la cadena en una secuencia de bytes y la almacena en un array de bytes.
La sintaxis del método getBytes() es:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
El método getBytes() devuelve un array de bytes.
Si no se pasa ningún parámetro, getBytes() utiliza la codificación de carácter predeterminada de la plataforma para codificar la cadena.
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //Convertir la cadena a un array de bytes //Usar la codificación de carácter predeterminada de la plataforma byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); } }
输出结果
[74, 97, 118, 97]
注意:En el ejemplo anterior, usamos la clase Arrays para imprimir el array de bytes de manera legible. No tiene nada que ver con getBytes().
Estos son otros métodos disponibles en CharsetJava:
UTF-8 - Formato de conversión UCS de 8 bits
UTF-16 - Formato de conversión UCS de 16 bits
UTF-16BE - Formato de conversión UCS de 16 bits, orden de bytes de granos
UTF-16LE - Formato de conversión UCS de 16 bits, orden de bytes de pie
US-ASCII - ASCII de 7 bits
ISO-8859-1 - ISO latín1Número
import java.util.Arrays; import java.nio.charset.Charset; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; //Usar UTF-8Codificación byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); //Usar UTF-16Codificación byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); } }
输出结果
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
注意:En el programa anterior, hemos importado java.nio.charset.Charset para usar Charset. Y ya hemos importado la clase Arrays para imprimir el array de bytes de manera legible.
También se puede usar una cadena para especificar el tipo de codificación de getBytes(). Al usar getBytes() de esta manera, debe envolver el código enEn el bloque try ... catch.
import java.util.Arrays; class Main { public static void main(String[] args) { String str = "Java"; byte[] byteArray; try { byteArray = str.getBytes("UTF-8"); System.out.println(Arrays.toString(byteArray)); byteArray = str.getBytes("UTF-16"); System.out.println(Arrays.toString(byteArray)); //错误的编码 //抛出异常 byteArray = str.getBytes("UTF-34"); System.out.println(Arrays.toString(byteArray)); }) catch (Exception e) { System.out.println(e + "encoding is wrong"); } } }
输出结果
[74, 97, 118, 97] [-2, -1, 0, 74, 0, 97, 0, 118, 0, 97] java.io.UnsupportedEncodingException: UTF-34 encoding is wrong
注意:Hemos importado java.util.数组以可读形式打印字节数组。它与getBytes()无关。