Я создаю этот метод, который принимает параметр InputStream
как параметр, но функция readLine()
возвращает null
. Во время отладки входной поток не пуст.BufferedReader.readline() возвращающее значение null
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();
}
Мы не можем сказать, что не так из данного кода. Пожалуйста, отредактируйте с помощью [минимального, но полного примера] (http://stackoverflow.com/help/mcve), который воспроизводит это поведение. – Radiodef
Это зависит от вашего 'inputStream', который вы не разделили. Не говоря уже, вы могли бы просто использовать 'IOUtils.toString()' из 'commons-io'. – EpicPandaForce
как вы инициализируете 'inputStream'? Вы уверены, что вы передаете что-то действительное для 'inputStream', так что' readLine() 'не возвращает« null »? – Blip