java从SequenceInputStream问题中读取内容

Posted

技术标签:

【中文标题】java从SequenceInputStream问题中读取内容【英文标题】:java read content from SequenceInputStream issue 【发布时间】:2019-10-18 19:08:06 【问题描述】:

我正在尝试从 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();

【问题讨论】:

您为什么要创建SequenceInputStream 而不是从您已有的InputStream 中读取? 我不相信你可以将 null 参数传递给构造函数。 我也尝试读取 InputStream,但是当我检查它时,它包含相同的数据并且输出为空白 @MauricePerry 我只是用输入 strem 更新我的问题,请检查 请发布您的代码 【参考方案1】:

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

您将代码更改为 SequenceInputStream si = new SequenceInputStream(null, is);你首先得到NPE

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

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

谢谢, 高瑟姆

【讨论】:

我已经尝试过您上面提到的建议,但它对我不起作用。 你遇到什么错误...放当前代码

以上是关于java从SequenceInputStream问题中读取内容的主要内容,如果未能解决你的问题,请参考以下文章

Java学习之IO流(序列流--SequenceInputStream)

java 合并流(SequenceInputStream)

java_I/O_合并流(SequenceInputStream)

(20)IO流之SequenceInputStream 序列流

IO_SequenceInputStream

java入门了解12