有没有办法在不需要硬编码路径的情况下读取我们项目中的文件?

时间:2016-02-26 21:43:07

标签: java

我有几个.dat文件,我的程序读取输入和输出。它们存储在项目文件夹中。我将如何读取和写入这些文件,路径是什么?我希望能够压缩项目并将其发送给其他人使用,这样我就无法对路径进行硬编码,因为其他人可能不会将其放在同一条路径中

现在我正在使用扫描仪和文件类:

    String input= "E:\\CProj01\\input.dat";
    Scanner scannerInput = new Scanner(new File(input));

3 个答案:

答案 0 :(得分:3)

是的!您可以使用ClassLoader

如果您将文件保存在项目目录中的相对位置,则可以执行以下操作:

getClass().getClassLoader().getResourceAsStream("relative file path here")

然后您可以使用返回的InputStream对象来解析文件。

ClassLoader允许您保存所有文件相对于项目根目录,因此如果您的文件组织如下:

src_
    |___files_
    |    -'yourfile.dat'
    |    -'anotherfile.dat'
    |___java_

使用yourfile.data String参数引用files/yourfile.dat无论在何处部署/下载/移动包,都会将该文件作为流提供给您。

答案 1 :(得分:1)

是的,如果您将其作为可以使用和编辑的Java项目发送,那么您可以创建一个resources文件夹,您只需获取文件路径

String input= "src/resources/input.dat";
Scanner scannerInput = new Scanner(new File(input));

答案 2 :(得分:0)