English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Manual Básico de Java

Java Controle de Fluxo

Java Array

Java Orientação a Objetos (I)

Java Orientação a Objetos (II)

Java Orientação a Objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

conjunto Map do Java

conjunto Set do Java

Java Entrada Saída (I/O)

Reader Java/Writer

Outros tópicos do Java

Uso e exemplo do método getBytes() da String Java

Métodos Java String (Cadeia de Caracteres)

O método getBytes() da String Java codifica a string em uma sequência de bytes e armazena-a em um array de bytes.

A sintaxe do método getBytes() é:

string.getBytes()
string.getBytes(Charset charset)
string.getBytes(String charsetName)

O método getBytes() retorna um array de bytes.

1. getBytes() sem nenhum parâmetro

Se nenhum parâmetro for passado, o getBytes() usa o conjunto de caracteres padrão da plataforma para codificar a string.

Exemplo: getBytes() sem nenhum parâmetro

import java.util.Arrays;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    //converter a string em um array de bytes
    //usando o conjunto de caracteres padrão da plataforma
    byteArray = str.getBytes();
    System.out.println(Arrays.toString(byteArray));
  }
}

Resultados de Saída

[74, 97, 118, 97]

Atenção:No exemplo acima, usamos a classe Arrays para imprimir o array de bytes de forma legível. Isso não tem nada a ver com getBytes().

2. getBytes() com parâmetro Charset

Estes são outros métodos disponíveis no CharSetJava:

  • UTF-8 - formato de conversão UCS de oito bits

  • UTF-16 - formato de conversão UCS de dezesseis bits

  • UTF-16BE - formato de conversão UCS de dezesseis bits, byte order big-endian

  • UTF-16LE - formato de conversão UCS de dezesseis bits, byte order little-endian

  • US-ASCII - ASCII de sete bits

  • ISO-8859-1 - ISO latino1número

Exemplo: getBytes() com parâmetro Charset

import java.util.Arrays;
import java.nio.charset.Charset;
class Main {
  public static void main(String[] args) {
    String str = "Java";
    byte[] byteArray;
    //usando UTF-8codificação
    byteArray = str.getBytes(Charset.forName("UTF-8"));
    System.out.println(Arrays.toString(byteArray));
    //usando UTF-16codificação
    byteArray = str.getBytes(Charset.forName("UTF-16"));
    System.out.println(Arrays.toString(byteArray));
  }
}

Resultados de Saída

[74, 97, 118, 97]
[-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]

Atenção:No programa acima, importamos java.nio.charset.Charset para usar Charset. E já importamos a classe Arrays para imprimir o array de bytes de forma legível.

3. getBytes() com parâmetro de string

Também pode usar uma string para especificar o tipo de codificação do getBytes(). Quando usado dessa forma, o código deve ser encerrado embloco try ... catch

Exemplo: getBytes() com parâmetro de string

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));
            //Codificação Errada
            //Lançar Exceção
      byteArray = str.getBytes("UTF-34
      System.out.println(Arrays.toString(byteArray));
    }) catch (Exception e) {
      System.out.println(e + "encoding is wrong");
    }
  }
}

Resultados de Saída

[74, 97, 118, 97]
[-2, -1, 0, 74, 0, 97, 0, 118, 0, 97]
java.io.UnsupportedEncodingException: UTF-34 encoding is wrong

Atenção:Nós importamos java.util.Array para imprimir o array de bytes em formato legível. Isso não tem nada a ver com getBytes().

Métodos Java String (Cadeia de Caracteres)