【发布时间】:2021-04-14 10:08:14
【问题描述】:
我有一个程序,用户在其中选择作为字符串传递的文件路径。
现在我有一个函数应该创建一个 BufferedInputStream 获取该字符串并将其分配给 InputStream。
try (final InputStream is = IOUtils.toInputStream(pathToFile) ) { ...
我的问题是我得到的是 ByteArrayInputStream 而不是“正常”的 BufferedInputStream。如果我打印变量“is”。
有没有办法保证它必须是 BufferedInputStream 或者我可以转换为 BufferedInputStream?
我也试过这个:
try (final InputStream is = new ByteArrayInputStream(pathToFile.getBytes(StandardCharsets.UTF_8)) ) {
但这没有用。
【问题讨论】:
-
InputStream is = new FileInputStream(pathToFile); -
BufferredInputStream构造函数采用InputStream,你能在这里解释一下问题吗? -
为什么您的代码会关心它是否接收到 BufferedInputStream 或 ByteArrayInputStream 或任何类型的 InputStream?因为一般情况下不应该这样,所以除非有特定原因,否则请更改您的代码以接受
InputStream。 -
顺便说一句,我不知道这个
IOUtils是什么,但你可以考虑改用java.nio.Files.newInputStream。
标签: java inputstream