来自相对路径的 InputStream
Posted
技术标签:
【中文标题】来自相对路径的 InputStream【英文标题】:InputStream from relative path 【发布时间】:2011-12-03 06:52:08 【问题描述】:我有一个相对文件路径(例如“/res/example.xls”),我想从该路径获取该文件的InputStream对象.
我检查了JavaDoc
,并没有找到构造函数或方法来从路径中获取这样的InputStream/
有人知道吗?请告诉我!
【问题讨论】:
那不是相对路径。这是一条绝对路径。 【参考方案1】:使用FileInputStream
:
InputStream is = new FileInputStream("/res/example.xls");
但永远不要从原始文件输入流中读取,因为这非常慢。首先用缓冲装饰器包装它:
new BufferedInputStream(is);
BTW 前导斜杠表示路径是绝对的,而不是相对的。
【讨论】:
【参考方案2】:InputStream inputStream = Files.newInputStream(Path);
【讨论】:
完美答案! 考虑使用缓冲版本以提高效率:link【参考方案3】:初始化一个变量,如:Path filePath
,然后:
FileInputStream fileStream;
try
fileStream = new FileInputStream(filePath.toFile());
catch (Exception e)
throw new RuntimeException(e);
完成! 使用 Path,您可以访问许多有用的方法。
【讨论】:
现有答案已经以更简单的方式涵盖了该问题。【参考方案4】:new FileInputStream("your_relative_path")
将相对于当前工作目录。
【讨论】:
以上是关于来自相对路径的 InputStream的主要内容,如果未能解决你的问题,请参考以下文章