NetBeans Java项目文本文件的路径

10

我有以下代码来读取文本文件。

public static void main(String[] args)
{
    try 
    {
    Scanner in = new Scanner(new FileReader("input.txt"));
    while(in.hasNext())
    {
        System.out.println(in.next());
    }
} 
catch (FileNotFoundException ex) 
{
    Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
}
}

我已经按照以下方式设置了我的项目结构:

build/ directory contains class
dist/  directory contains the jar file 
src/ directory contains source
input.txt the text file to read

如果我将文本文件input.txt放入名为test的文件夹中,该文件夹与builddistsrc在同一目录下,那么filereader的参数应该填写什么,以便我仍然能够找到这个文件?

2个回答

10
当在Netbeans IDE中运行时,工作目录是项目的根目录,所以回答你的问题,"test/input.txt"。
然而需要注意的是,在测试代码时这样做完全没有问题,但是在最终(生产)代码中使用相对路径可能会更加棘手。在这种情况下,将文件作为资源包装在jar文件中并将其作为资源流打开可能是更好的解决方案,或者当然也可以使用绝对路径。

你能否给我更多如何将文件作为JAR资源打包的信息?谢谢。 - Rhs
在SO上,“daisychaining”问题最好避免,这会让我们远离原始问题。看一下关于该主题的一些问题,例如这里这里,以及许多其他问题(使用搜索功能),并且这篇博客展示了如何在NB中添加它们。如果您遇到问题,请不要犹豫开新问题。 - fvu

5
如果您知道子目录的名称,只需使用以下命令:
Scannner in = new Scanner(new FileReader("test/input.txt"));

2
Java的Windows版本也能够使用“test/input.txt”,因此根本不需要反斜杠版本。 - fvu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接