2
我有一個方法返回S3上的文件的InputStream。如果我使用這個方法兩次,S3的調用將被執行兩次。我想知道是否有一種方法來存儲輸入流?有沒有辦法來存儲/緩存InputStream?
例如:
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))
}
}
可以使用帶有標記的的BufferedInputStream()和reset() –
或者你可以讀到的一切爲一個字節數組在內存中,並在字節數組上打開ByteArrayInputStream。 –
@Kayaman謝謝:)這應該是僞代碼。我在groovy編碼,所以這將工作 – Anthony