Metóda Java String getBytes () kóduje reťazec do postupnosti bajtov a ukladá ho do bajtového poľa.
Syntax getBytes()
metódy String sú:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Reťazec je tu predmetom String
triedy.
getBytes()
Metóda vracia bajtové pole.
1. getBytes () bez akýchkoľvek parametrov
Ak nezadáte žiadne parametre, getBytes()
zakóduje reťazec pomocou predvolenej znakovej sady platformy.
Príklad: getBytes () bez akýchkoľvek parametrov
import java.util.Arrays; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // convert the string to a byte array // using platform's default charset byteArray = str.getBytes(); System.out.println(Arrays.toString(byteArray)); ) )
Výkon
(74, 97, 118, 97)
Poznámka:Arrays
Triedu vo vyššie uvedenom príklade sme použili na tlač bajtového poľa v čitateľnej podobe. Nemá to nič spoločné getBytes(
).
2. getBytes () S parametrom CharSet
Tu sú rôzne CharSet
dostupné v jave:
- UTF-8 - Osembitový formát transformácie UCS
- UTF-16 - šestnásťbitový formát transformácie UCS
- UTF-16BE - šestnásťbitový formát transformácie UCS, poradie bajtov big-endian
- UTF-16LE - Šestnásťbitový formát transformácie UCS, objednávka bajtov typu endian
- US-ASCII - sedembitový ASCII
- ISO-8859-1 - ISO latinská abeceda č. 1
Príklad: getBytes () S parametrom CharSet
import java.util.Arrays; import java.nio.charset.Charset; class Main ( public static void main(String() args) ( String str = "Java"; byte() byteArray; // using UTF-8 for encoding byteArray = str.getBytes(Charset.forName("UTF-8")); System.out.println(Arrays.toString(byteArray)); // using UTF-16 for encoding byteArray = str.getBytes(Charset.forName("UTF-16")); System.out.println(Arrays.toString(byteArray)); ) )
Výkon
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Poznámka: Vo vyššie uvedenom programe sme importovali java.nio.charset.Charset
použitie CharSet
. A sme importovali Arrays
triedu na tlač bajtového poľa v čitateľnej podobe.
3. getBytes () S reťazcovým parametrom
Môžete tiež určiť typ kódovania getBytes()
pomocou reťazcov. Ak použijete getBytes()
tento spôsob, musíte zabaliť kód dovnútra try … catch block.
Príklad: getBytes () S reťazcovým parametrom
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)); // wrong encoding // throws an exception byteArray = str.getBytes("UTF-34"); System.out.println(Arrays.toString(byteArray)); ) catch (Exception e) ( System.out.println(e + " encoding is wrong"); ) ) )
Výkon
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: kódovanie UTF-34 je nesprávne
Poznámka: Importovali sme súbory java.util.Arra na tlač bajtového poľa v čitateľnej podobe. Nemá to nič spoločné getBytes()
.