Phương thức Java String getBytes () mã hóa chuỗi thành một chuỗi byte và lưu trữ nó trong một mảng byte.
Cú pháp của getBytes()
phương thức String là:
string.getBytes() string.getBytes(Charset charset) string.getBytes(String charsetName)
Ở đây, string là một đối tượng của String
lớp.
Các getBytes()
phương thức trả về một mảng byte.
1. getBytes () Không có bất kỳ tham số nào
Nếu bạn không chuyển bất kỳ tham số nào, hãy getBytes()
mã hóa chuỗi bằng bộ ký tự mặc định của nền tảng.
Ví dụ: getBytes () Không có bất kỳ tham số nào
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)); ) )
Đầu ra
(74, 97, 118, 97)
Lưu ý: Chúng ta đã sử dụng Arrays
lớp trong ví dụ trên để in mảng byte ở dạng có thể đọc được. Nó không có gì để làm với getBytes(
).
2. getBytes () Với Tham số CharSet
Dưới đây là các khác nhau CharSet
có sẵn trong java:
- UTF-8 - Định dạng chuyển đổi UCS tám bit
- UTF-16 - Định dạng chuyển đổi UCS 16 bit
- UTF-16BE - Định dạng chuyển đổi UCS 16 bit, thứ tự byte lớn
- UTF-16LE - Định dạng chuyển đổi UCS mười sáu bit, thứ tự byte nhỏ
- US-ASCII - ASCII bảy bit
- ISO-8859-1 - ISO Bảng chữ cái Latinh số 1
Ví dụ: getBytes () Với Tham số 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)); ) )
Đầu ra
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97)
Lưu ý: Trong chương trình trên, chúng ta đã nhập java.nio.charset.Charset
để sử dụng CharSet
. Và, chúng ta đã nhập Arrays
lớp để in mảng byte ở dạng có thể đọc được.
3. getBytes () Với tham số chuỗi
Bạn cũng có thể chỉ định kiểu mã hóa để getBytes()
sử dụng chuỗi. Khi bạn sử dụng getBytes()
theo cách này, bạn phải bọc mã bên trong khối try… catch.
Ví dụ: getBytes () Với tham số chuỗi
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"); ) ) )
Đầu ra
(74, 97, 118, 97) (-2, -1, 0, 74, 0, 97, 0, 118, 0, 97) java.io.UnsupportedEncodingException: UTF-34 encoding is sai
Lưu ý: Chúng tôi đã nhập java.util.Arrays để in mảng byte ở dạng có thể đọc được. Nó không có gì để làm với getBytes()
.