我有一个固定长度的字节数组,我想在其中存储一个字符串。喜欢的东西:如何从固定长度的字节数组中存储和读取字符串?
byte[] dst = new byte[512];
String foo = "foo";
byte[] src = foo.getBytes("utf-8");
for (int i = 0; i < src.length; i++) {
dst[i] = src[i];
}
但是,当我想读的字符串值回了DST的,也没有办法知道在哪里终止字符串(猜有没有在Java空终止的概念?)。我是否必须将字符串的长度存储在字节数组中,分别读出它以知道从字节数组中读取多少字节?
为什么你从src'完全复制到'dst',而不是使用'src'本身? –
是的,你应该存储你填入dst的字符串的长度,否则你将如何知道在再次从dst字节数组重新创建字符串时再次拉取多少字节。 – anubhava
'new String(dst,0,src.length,“UTF-8”)''你可以使用没有字节的'DataOutputStream.writeUTF8(String)'。 –