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

标签 java string inputstream decode

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

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

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

最佳答案

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

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

关于java - 从 InputStream 读取时如何避免编码 null (\u0000),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13948903/

相关文章:

java - 在 liferay 的不同页面上显示导航菜单?

java - AWS Java SDK 为 iOS 发送带声音的 SNS (AWS) 消息应该是什么 Json 字符串?

java - 如何解析计算器项目中的操作数和运算符?

Javascript:如何从字符串末尾删除标点符号

iPhone。与 HTTP 服务器建立二进制数据流

java - 支持 mark() 和 reset() 的轻量级 java.io.InputStream 实现

android - 为什么在使用 InputStream 从 .txt 读取时得到问号而不是符号?

java - onlocationchanged 来不及调用,不符合我的要求

java - Java 中用于自定义对象列表的 Foreach 循环

关于 getline(cin, string) 的 C++ 快速问题