我正在尝试读取 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 文件和文本文件位于同一文件夹中。
它是否在其他文件夹中搜索文本文件?
最佳答案
设置工作目录
在 Eclipse 内部工作时,您可以选择 set the working directory在您的启动配置中。为此:
- 导航至
运行
|运行配置
... - 在左侧 Pane 中选择您的配置
- 选择
参数
选项卡 - 导航至
工作目录
部分 - 选择
其他
- 输入您想要的基本目录
您可以通过打印在测试中验证这一点:
System.getProperty("user.dir")
这样做的好处是无需更改生产代码和测试代码。
推荐
但是,最好的方法是始终通过配置明确工作目录。这会将工作目录置于应用程序的直接控制之下,并且远离工具和 servlet 容器(例如 Eclipse 和 Tomcat)。为此,您可以使用以下 File
constructor
new File(parent, file)
关于java - 文件未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883583/