Java从SequenceInputStream问题中读取内容

时间:2019-06-03 08:39:11

标签: java inputstream

我正在尝试从SequenceInputStream读取内容 但它返回我为null,但是当我检查它包含值时,请参阅屏幕截图

enter image description here

以下是我的代码

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读取它 但输出相同

enter image description here

以下是我的输入流读取的代码

              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();

1 个答案:

答案 0 :(得分:0)

强制使用两个流应该不为null。如果流中的任何一个为空,则在读取第一个流后,将获得空指针异常。

将代码更改为SequenceInputStream si = new SequenceInputStream(null,is);您将获得NPE冠军

为什么必须使用sequenceInputStream读取内容。您可以使用以下代码或任何其他流阅读器

StringWriter writer = new StringWriter();
IOUtils.copy(inputStream, writer, encoding);
String theString = writer.toString();

谢谢, 哥谭