有没有办法确定输入流是否只读?
我想这样一个有没有办法确定输入流是否只读?
File file =new File(inputStream) // not possible though. file.canWrite
,
,但我似乎无法找到解决输入流转换为一个文件,而无需在其他地方写它。谢谢!
你似乎倒退了。
根据定义,InputStream
将永远只允许您读取字节流,无论字节流来自哪里。它可能来自文件,网络套接字或自定义提供程序。根据其定义,无论如何,您只能从InputStream
读取。
既然你似乎与文件在这里工作,你可以检查文件是否只读使用当前运行的进程用户:
final Path path = Paths.get("path/to/my/file");
// is it writable? If no, consider "read only"
final boolean canWrite = Files.isWritable(path);
,并从Path
打开InputStream
,使用:
try (
final InputStream in = Files.newInputStream(path);
) {
// work with "in"
}
Hi fge,感谢您的回复。我很感激。目前我的方法接收一个代表文件内容的DataHandler对象。我正在考虑一种方法来确定数据处理程序中的内容文件是否只读。 –
@WayneDeLosAngeles:这又是一个倒退的想法。你只能通过阅读才能阅读,而不是写作。 –
@WayneDeLosAngeles你怎么知道这个特殊的'DataHandler'代表一个文件的内容?这是你的API吗?另一个API?它是否被迫将文件作为“后端”来提供“InputStream”?而且,也许更重要的是,你为什么首先关心? – fge
你看起来有东西倒退。你会不会'InputStream is = new FileInputStream(new File(“someFile.foo”));'? –
或更好 - 将其全部包装在BufferedInputStream中 –