gpt4 book ai didi

java - 有没有办法存储/缓存 InputStream?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:03 25 4
gpt4 key购买 nike

我有一个方法可以返回 S3 上文件的 InputStream。如果我两次使用此方法,则会调用两次 S3。我想知道是否有办法存储输入流?

例如:

InputStream getInputStreamForObject(String fileName) {
//return inputstream for fileName on S3
}

String determineFiletype (InputStream is) {
//some way to determine filetype from inputstream.
//inputstream would be read here
}

void someMethod(String fileName) {
String fileType = determineFileType(getInputStreamForObject(fileName))
if (fileType == "DOCX") {
docxParser.parse(getInputStreamForObject(fileName))
}
else if (fileType == "XLSX") {
xlsxParser.parse(getInputStreamForObject(fileName))
}
}

最佳答案

为其他有类似问题的人发布答案。该解决方案基于 JB Nizet 的评论

这使用 Commons IO将 InputStream 转换为 bytearray

byte[] bytes = IOUtils.toByteArray(getInputStreamForObject(fileName)); 
fileType = determineFileType(new ByteArrayInputStream(bytes));
docxParser.parse(new ByteArrayInputStream(bytes))

关于java - 有没有办法存储/缓存 InputStream?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40473543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com