Java 将字节流转换为字符串(UTF-8编码)

Java 将字节流转换为字符串(UTF-8编码),java,android,utf-8,inputstream,Java,Android,Utf 8,Inputstream,我有一个字节流(由BufferedInputStream给出),它表示UTF-8字符串序列。该协议有点糟糕,因为它在命令之间使用0xFF,这意味着整个流不是有效的UTF-8字符串,只有0xFF之间的部分是无效的 如何提取这些UTF-8字符串。 我认为BufferedReader不起作用,因为0xFF会把一切都搞糟,而且我还没有找到UTF-8字符串转换函数的字节数组。 新字符串(字节,“UTF-8”) 不过,您需要事先过滤流。谢谢:-)顺便说一下,为了将流转换为字节[],我通过逐个读取字节填充了一

我有一个字节流(由BufferedInputStream给出),它表示UTF-8字符串序列。该协议有点糟糕,因为它在命令之间使用0xFF,这意味着整个流不是有效的UTF-8字符串,只有0xFF之间的部分是无效的

如何提取这些UTF-8字符串。

我认为BufferedReader不起作用,因为0xFF会把一切都搞糟,而且我还没有找到UTF-8字符串转换函数的字节数组。

新字符串(字节,“UTF-8”)


不过,您需要事先过滤流。

谢谢:-)顺便说一下,为了将流转换为字节[],我通过逐个读取字节填充了一个数组列表,然后将其转换为字节[]。你认为有更简单的方法吗?(我不想做一些丑陋的事情,比如声明一个新字节[1024],并希望输入不会超过1024字节)您可以使用ByteBuffer,当ByteBuffer满时,它似乎不会自动增长,因此我没有真正看到兴趣。我仍然需要声明任意大小,并且希望我的输入不会太大。您可以使用