这真的取决于你如何期望在另一端解码这些字节.一个合理的方法是使用UTF-8编码,如DataOutputStream对列表中的每个字符串.对于一个字符串,它为UTF-8编码的长度写入2个字节,后跟UTF-8字节.如果您不是在另一端使用
Java,这将是可移植的.以下是ArrayList< String>的编码和解码的示例.以这种方式使用Java双方:
// example input list
List list = new ArrayList();
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);
}