在Java InputStream中从ByteArrayInputStream转换为BufferedInputStream
我有一个程序,用户在其中选择一个作为字符串传递的文件路径 现在我有了一个函数,它应该创建一个BufferedInputStream,获取该字符串并将其分配给InputStream在Java InputStream中从ByteArrayInputStream转换为BufferedInputStream,java,inputstream,Java,Inputstream,我有一个程序,用户在其中选择一个作为字符串传递的文件路径 现在我有了一个函数,它应该创建一个BufferedInputStream,获取该字符串并将其分配给InputStream try (final InputStream is = IOUtils.toInputStream(pathToFile) ) { ... 这里的问题是,我得到的是ByteArrayInputStream,而不是“正常”的BufferedInputStream。如果我打印变量“is” 有没有办法保证它必须是Buff
try (final InputStream is = IOUtils.toInputStream(pathToFile) ) { ...
这里的问题是,我得到的是ByteArrayInputStream,而不是“正常”的BufferedInputStream。如果我打印变量“is”
有没有办法保证它必须是BufferedInputStream,或者我可以强制转换为BufferedInputStream
我也试过:
try (final InputStream is = new ByteArrayInputStream(pathToFile.getBytes(StandardCharsets.UTF_8)) ) {
但是这不起作用。好的,我不知道这是否是一个解决办法,但是:
try (final InputStream is = IOUtils.toInputStream(pathToFile) ) {
final InputStream xs = new BufferedInputStream(is);
对我有用。XS现在是一个BufferedInputStream。您可以获得如下输入流
try(InputStream input = new BufferedInputStream(new FileInputStream(pathToFile)))
InputStream is=新文件InputStream(pathToFile)
BufferredInputStream
构造函数接受InputStream
,您能在这里解释这个问题吗?为什么您的代码关心它是否接收到BufferedInputStream或ByteArrayInputStream或任何类型的InputStream?因为一般来说,它不应该这样,所以除非有一个具体的原因,否则改变代码接受“代码>输入流< /代码>。作为一个旁白,我不知道这个<代码> IouTILLS < /C>是什么,但是您可能需要考虑切换到代码> java。NiO.Frase.NeWiPvsStuts。