【发布时间】:2015-04-22 09:03:17
【问题描述】:
我正在创建这个方法,它以InputStream 作为参数,但readLine() 函数返回null。调试时,inputstream 不为空。
else if (requestedMessage instanceof BytesMessage) {
BytesMessage bytesMessage = (BytesMessage) requestedMessage;
byte[] sourceBytes = new byte[(int) bytesMessage.getBodyLength()];
bytesMessage.readBytes(sourceBytes);
String strFileContent = new String(sourceBytes);
ByteArrayInputStream byteInputStream = new ByteArrayInputStream(sourceBytes);
InputStream inputStrm = (InputStream) byteInputStream;
processMessage(inputStrm, requestedMessage);
}
public void processMessage(InputStream inputStrm, javax.jms.Message requestedMessage) {
String externalmessage = tradeEntryTrsMessageHandler.convertInputStringToString(inputStrm);
}
public String convertInputStringToString(InputStream inputStream) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
StringBuilder sb = new StringBuilder();
String line;
while ((line = br.readLine()) != null) {
sb.append(line);
}
br.close();
return sb.toString();
}
【问题讨论】:
-
我们无法从给定的代码中判断出什么问题。请使用重现此行为的minimal, but complete example 进行编辑。
-
这取决于你的
inputStream,你没有分享。更不用说,你可以只使用commons-io中的IOUtils.toString()。 -
你是如何初始化
inputStream的?你确定你正在传递一些有效的东西给inputStream,所以readLine()没有返回null吗?
标签: java file inputstream