我有一個固定長度的字節數組,我想在其中存儲一個字符串。喜歡的東西:如何從固定長度的字節數組中存儲和讀取字符串?
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)'。 –