来自相对路径的 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的主要内容,如果未能解决你的问题,请参考以下文章

需要来自 gulpfile.js 中的相对路径的 node_modules

来自 Apache 服务器上远程机器的错误相对路径

java里绝对路径和相对路径的区别是啥?

有没有更好的方法来要求来自 lua 中相对路径的文件

I/O

如何在 Django 应用程序中使用来自预制 index.html 模板和 css 的相对路径?