Gerçekten de bu baytların diğer ucunda nasıl çözüleceğini beklediğinize bağlıdır. Bir mantıklı yol, listedeki her dize için DataOutputStream
gibi UTF-8 kodlamasını kullanmaktır. Bir dize için UTF-8 kodlamanın uzunluğu ve ardından UTF-8 baytları için 2 bayt yazar. Diğer ucunda Java kullanmıyorsanız bu taşınabilir olacaktır. İşte bir kodlama örneği ve var her iki taraf için Java kullanarak bu yolla bir ArrayList<String>
deşifre:
// 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);
}
Sen isteyebilirsiniz http://www.java2s.com/Code/JavaAPI/java.util/ArrayListtoArrayTa.htm –