我正在尝试从SequenceInputStream读取内容 但它返回我为null,但是当我检查它包含值时,请参阅屏幕截图
以下是我的代码
InputStream is = m.getContent(InputStream.class);
SequenceInputStream si = new SequenceInputStream(is, null);
int j;
int i=0;
while((i=si.read())!=-1) {
System.out.print((char)i);
}
我也尝试从InputStream读取它 但输出相同
以下是我的输入流读取的代码
CachedOutputStream bos = new CachedOutputStream();
IOUtils.copy(is,bos);
String soapMessage = new String(bos.getBytes());
System.out.println("-------------------------------------------");
System.out.println("incoming message is " + soapMessage);
System.out.println("-------------------------------------------");
bos.flush();
答案 0 :(得分:0)
强制使用两个流应该不为null。如果流中的任何一个为空,则在读取第一个流后,将获得空指针异常。
将代码更改为SequenceInputStream si = new SequenceInputStream(null,is);您将获得NPE冠军
为什么必须使用sequenceInputStream读取内容。您可以使用以下代码或任何其他流阅读器
StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, encoding);
String theString = writer.toString();
谢谢, 哥谭