如何正确阅读助焊剂 并将其转换为单个inputStream

如何正确阅读助焊剂 并将其转换为单个inputStream,第1张

如何正确阅读助焊剂 并将其转换为单个inputStream

我能够通过使用

Flux#collect
和使它工作
SequenceInputStream

@Overridepublic Mono<T> extract(ClientHttpResponse response, BodyExtractor.Context context) {  Flux<DataBuffer> body = response.getBody();  return body.collect(InputStreamCollector::new, (t, dataBuffer)-> t.collectInputStream(dataBuffer.asInputStream))    .map(inputStream -> {      try {        JaxBContext jc = JaxBContext.newInstance(SomeClass.class);        Unmarshaller unmarshaller = jc.createUnmarshaller();        return (T) unmarshaller.unmarshal(inputStream);      } catch(Exception e){        return null;      }  }).next();}

InputStreamCollector.java

public class InputStreamCollector {  private InputStream is;  public void collectInputStream(InputStream is) {    if (this.is == null) this.is = is;    this.is = new SequenceInputStream(this.is, is);  }  public InputStream getInputStream() {    return this.is;  }}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4933864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-13
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存