FileNotFoundException异常

时间:2012-10-14 15:23:30

标签: java servlets file-io java.util.scanner

我正在尝试读取servlet中的文件。我正在使用eclipse IDE。

如果我提供相对文件名,我会收到FileNotFoundException。

List<String> ls=new ArrayList<String>();
Scanner input = new Scanner(new File("Input.txt"));
while(input.hasNextLine()) {
   ls.add(input.nextLine());
}

如果我把绝对路径放在这样的代码中,相同的代码就可以了:

Scanner input = new Scanner(new File("F:/Spring and other stuff/AjaxDemo/src/com/pdd/ajax/Input.txt"));

Java文件和文本文件位于同一文件夹中。

是否在其他文件夹中搜索文本文件?

2 个答案:

答案 0 :(得分:1)

设置工作目录

在Eclipse内部工作时,您有一个选项是在启动配置中set the working directory。要做到这一点:

  1. 导航至Run | Run Configurations ...
  2. 在左侧窗格中选择您的配置
  3. 选择Arguments标签
  4. 导航至Working directory部分
  5. 选择Other
  6. 输入您想要的基本目录
  7. 您可以通过打印在测试中对此进行验证:

    System.getProperty("user.dir") 
    

    这样做的好处是不会更改生产与测试的代码。

    建议

    但是,最好的方法是始终通过配置明确工作目录。这将工作目录置于应用程序的直接控制之下,远离Eclipse和Tomcat等工具和servlet容器。为此,您将使用以下File constructor

    new File(parent, file)
    

答案 1 :(得分:0)

- 如果您使用的是Eclipse之类的IDE,请将文件放在Application's Project Folder

- 您也可以将其放在src文件夹中。