我有一个InputStream,我读取数据并将其记录在屏幕上。然后,我希望将这些数据传递给StaxParser。但是,staxparser不知道如何连续从字符串中获取数据,而是需要输入流。
因此,我想克隆相同的InputStream以便从中读取。
您是否有更好的建议?如果没有,那么如何克隆InputStreams?
此致敬礼,
一种“克隆”输入流的方法如下: 请注意,您需要处理异常 :)
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int len;
while ((len = input.read(buffer)) > -1 ) {
byteArrayOutputStream.write(buffer, 0, len);
}
byteArrayOutputStream.flush();
InputStream inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
另请参考如何克隆InputStream?了解更多选项。
String
中,然后使用它创建一个InputStream
,并将其传递给解析器:InputStream is = new ByteArrayInputStream(srcString.getBytes());
或者,您可以从同一流
中重新读取数据,这里有几种方法: