我有一个 ArrayList<String>
我想通过 UDP 发送,但发送方法需要 byte[]
.
谁能告诉我如何转换我的 ArrayList<String>
至 byte[]
?
谢谢!
最佳答案
这实际上取决于您期望如何在另一端解码这些字节。一种合理的方法是使用像 DataOutputStream
这样的 UTF-8 编码。对列表中的每个字符串执行。对于字符串,它为 UTF-8 编码的长度写入 2 个字节,后跟 UTF-8 字节。如果您在另一端不使用 Java,这将是可移植的。这是一个编码和解码 ArrayList<String>
的示例这样双方都使用 Java:
// example input list
List<String> list = new ArrayList<String>();
list.add("foo");
list.add("bar");
list.add("baz");
// write to byte array
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream out = new DataOutputStream(baos);
for (String element : list) {
out.writeUTF(element);
}
byte[] bytes = baos.toByteArray();
// read from byte array
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
DataInputStream in = new DataInputStream(bais);
while (in.available() > 0) {
String element = in.readUTF();
System.out.println(element);
}
关于java - 将 ArrayList<String> 转换为字节 [],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618978/