从InputStream读取时如何避免编码null(\ u0000)

Fid*_*liO 5 java string decode inputstream

我正在读取请求正文并将其放入输入流.虽然我明确地说了解码方法,但我仍然在字符串之后得到很多\ u0000(Null).

InputStream is = exchange.getRequestBody();
byte[] header = new byte[100];
is.read(header);
String s = new String(header, "UTF-8");
Run Code Online (Sandbox Code Playgroud)

如何使用标准Java库避免这种情况?我不能使用第三方库.

Evg*_*eev 4

is.read(标题); 返回实际读取的字节数。将您的代码更改为

byte[] header = new byte[100];
int n = is.read(header);
String s = new String(header, 0, n, "UTF-8");
Run Code Online (Sandbox Code Playgroud)