java - 文件未找到异常

标签 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 文件和文本文件位于同一文件夹中。

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

最佳答案

设置工作目录

在 Eclipse 内部工作时,您可以选择 set the working directory在您的启动配置中。为此:

  1. 导航至运行 | 运行配置...
  2. 在左侧 Pane 中选择您的配置
  3. 选择参数选项卡
  4. 导航至工作目录部分
  5. 选择其他
  6. 输入您想要的基本目录

您可以通过打印在测试中验证这一点:

System.getProperty("user.dir") 

这样做的好处是无需更改生产代码和测试代码。

推荐

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

new File(parent, file)

关于java - 文件未找到异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12883583/

相关文章:

java - 在 Spring 中使用 Mono<T> 填充 Cloud Firestore 实体

java - Sip Servlet 应用程序未启动

java - 限制 JSP-Servlet 中的角色

java - 如何在我的 java 类中使用 ~ (相对目录)?

python - 处理 python 中的错误

java - 检查 JSON 模式中是否为 null

java - 使用新的请求拦截器伪造客户端重试器?

java - 无法在 Selenium WebDriver 中使用 gettext 提取文本,也无法单击它

java - 如何防止 servlet 缓冲响应内容

java - 文件删除检测