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_I/O_合并流(SequenceInputStream)