我对Maven很新,并且在阅读文件时遇到了一些麻烦。具体来说,我的程序将文件的绝对路径作为用户的输入,然后解析它。不幸的是,我不知道如何让我的应用程序从任意位置读取文件作为输入。
在我开始在项目中使用maven之前,我成功使用了这段代码:
String absolutePath = "/Users/akhalsa/path/to/file.txt";
inputStream = new BufferedReader(new FileReader(absolutePath));
但是,自从迁移到maven后,这似乎已经停止了。从我在maven中读到的内容我应该使用
InputStream in = getClass().getResourceAsStream(filePath);
filePath
似乎是相关文件的相对路径。 getResourceAsStream
是否要求正在读取的文件在jar中?这个文件可以是外部文件的绝对路径吗?当我在这里使用绝对路径时,它会显示“未找到资源”。
在允许用户从文件系统输入文件以供maven应用程序处理时,这必然是一个常见问题。最好的方法是什么?
提前致谢。
答案 0 :(得分:0)
getResourceAsStream()在jvm已知的路径上找到资源,因此您无法加载任意文件。
Maven没有神奇的技巧,所以如果你使用实际的绝对路径,代码应该继续工作。
路径的“用户”部分让我想起了Windows,但路径不是有效的Windows路径,所以你确定你传递的是有效的绝对路径吗?