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的目录相同,那么应该在参数中添加什么以便我仍然可以找到该文件?builddistsrcfilereader

4

2 回答 2

10

在 Netbeans IDE 中运行时,工作目录是项目的根目录,所以要回答您的问题,“test/input.txt”。

但是请注意,虽然这对于测试代码来说非常好,但在最终(生产)代码中使用这样的相对路径可能会比较棘手。在这些情况下,将文件作为资源包装在 jar 中并将其作为资源流打开可能是更好的解决方案,或者当然使用绝对路径。

于 2013-07-13T14:35:45.253 回答
5

如果您知道子目录的名称,只需使用

Scannner in = new Scanner(new FileReader("test/input.txt"));
于 2013-07-13T14:35:47.590 回答