Java String getBytes () yöntemi, dizeyi bir bayt dizisi halinde kodlar ve bir bayt dizisinde saklar.
String getBytes()
yönteminin sözdizimi şunlardır:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Burada string, String
sınıfın bir nesnesidir .
getBytes()
Yöntem, bir bayt dizisi döndürür.
1. Herhangi Bir Parametre Olmadan getBytes ()
Herhangi bir parametre getBytes()
iletmezseniz, dizeyi platformun varsayılan karakter kümesini kullanarak kodlar.
Örnek: Herhangi Bir Parametre Olmadan getBytes ()
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)); ) )
Çıktı
(74, 97, 118, 97)
Not:Arrays
Bayt dizisini okunabilir bir biçimde yazdırmak için yukarıdaki örnekteki sınıfı kullandık . Bununla hiçbir ilgisi yoktur getBytes(
).
2. getBytes () CharSet Parametresiyle
İşte java'da farklı CharSet
mevcut:
- UTF-8 - Sekiz bitlik UCS Dönüşüm Biçimi
- UTF-16 - On altı bitlik UCS Dönüşüm Formatı
- UTF-16BE - On altı bit UCS Dönüşüm Biçimi, büyük endian bayt sırası
- UTF-16LE - On altı bitlik UCS Dönüşüm Biçimi, küçük endian bayt sırası
- US-ASCII - Yedi bit ASCII
- ISO-8859-1 - ISO Latin Alfabesi No. 1
Örnek: CharSet Parametresiyle getBytes ()
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)); ) )
Çıktı
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Not: Yukarıdaki programda java.nio.charset.Charset
kullanmak üzere içe aktarmıştık CharSet
. Ve Arrays
bayt dizisini okunabilir bir biçimde yazdırmak için sınıfı içe aktardık .
3. getBytes () String Parametresiyle
getBytes()
Dizeleri kullanmak için kodlama türünü de belirtebilirsiniz . getBytes()
Bu şekilde kullandığınızda , kodu try… catch bloğunun içine sarmalısınız.
Örnek: getBytes () String Parametresiyle
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"); ) ) )
Çıktı
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: UTF-34 kodlaması yanlış
Not: Bayt dizisini okunabilir bir biçimde yazdırmak için java.util.Arrays'i içe aktardık. Onunla hiçbir ilgisi yok getBytes()
.