Java String 转换为 Byte 数组:详解与范例179


在 Java 中,String 对象表示一个不可变的字符序列,而 byte[] 则是一个原始类型数组,用于存储 8 位无符号整数。将 String 转换为 byte[] 数组对于数据处理、网络通信和文件操作等场景非常重要。

以下是一些常见的 String 到 byte[] 数组转换方法:

1. getBytes() 方法

String 类提供了一个 getBytes() 方法,可以将 String 转换为 byte[] 数组。此方法使用平台默认的字符集进行编码,通常是 UTF-8。例如:```java
String myString = "Hello, World!";
byte[] bytes = ();
```

2. getBytes(String charsetName) 方法

如果您需要使用特定的字符集进行编码,可以使用 getBytes(String charsetName) 方法。此方法接受一个字符集名称作为参数,例如 UTF-16 或 ASCII。例如:```java
String myString = "привет, мир!";
byte[] bytes = ("UTF-16");
```

3. (String charsetName).encode(String myString).array()

此方法使用 Java 1.7 中引入的 Charset 类进行编码。它与 getBytes(String charsetName) 方法类似,但提供了更灵活的字符集处理。例如:```java
String myString = "你好,世界!";
byte[] bytes = ("UTF-8").encode(myString).array();
```

4. 使用 Base64 编码

Base64 编码是一种将二进制数据转换为文本格式的方法。它通常用于通过电子邮件或 URL 传输二进制数据。以下是如何使用 Base64 编码将 String 转换为 byte[] 数组:```java
import .Base64;
String myString = "My Secret Message";
byte[] bytes = ().encode(());
```

5. 使用 ByteBuffer

ByteBuffer 类提供了一种更低级别的缓冲区管理方式。它可以用于将 String 转换为 byte[] 数组,如下所示:```java
import ;
String myString = "This is a test string";
ByteBuffer buffer = (());
(());
byte[] bytes = ();
```

选择适当的方法

选择要使用的转换方法取决于您的特定需求。如果您需要平台默认的编码,getBytes() 方法是一个简单快捷的选择。如果您需要使用特定的字符集,则可以使用 getBytes(String charsetName) 方法或 () 方法。对于 Base64 编码或更低级别的缓冲区管理,可以使用 Base64 类或 ByteBuffer 类。

2024-11-18


上一篇:Java 方法复写:揭示子类与父类之间微妙关系

下一篇:如何在 Java 中将数组转换为 JSON 字符串数组