【问题标题】:FileInputStream is not found even though the file exists [duplicate]即使文件存在,也找不到 FileInputStream [重复]
【发布时间】:2018-01-23 01:55:33
【问题描述】:

我正在尝试将 Firebase 与我在服务器上运行的 Java Spring Web 应用程序集成,但它给出了一个错误:

未处理的异常:java.io.FileNotFoundException"

文件存在于目录中:

FileInputStream serviceAccount = new FileInputStream("C:\Users\My Name\Downloads\Projectname\words.txt"); 

当我只使用存在的文件时,我运行了一堆打印,它的可读性,完整的文件路径或与FileInputStream 中的文件路径完全相同的任何东西,但没有任何效果。我不能使用 try catch,因为 Firebase 不允许它或其他东西。此时我不知道该怎么办。

【问题讨论】:

  • 你得到的“新”错误实际上是一样的,只是类型不同。
  • 两者都可以通过 alt 输入两次来修复

标签: java


【解决方案1】:

正如建议的副本中所述,您的问题很可能是您需要通过将throws FileNotFoundException 添加到您的方法(以及调用它的所有方法)来声明可能的异常。见Using FileReader causes a compiler error "unhandled exception type FileNotFoundException"

您上面发布的代码在编译时也给出了错误illegal escape character(因为Java中使用反斜杠表示换行符\n等特殊字符),这似乎与当前问题无关,但您可以通过用两个反斜杠替换每个反斜杠来修复它,如下所示:

FileInputStream serviceAccount = new FileInputStream("C:\\Users\\My Name\\Downloads\\Projectname\\words.txt");

【讨论】:

  • 如您所见,它们会有完全不同的编译错误。这个答案是错误的。
  • 如果您认为它是重复的,请标记为这样关闭。
  • @SotiriosDelimanolis 它已经被标记为重复,在阅读建议的重复时我意识到这可能是 OP 的问题
  • @Daniel 将您的新错误放在一个单独的问题中,详细说明您如何添加 throw 等。需要更多信息来调试它
  • 那么你的答案是没有必要的。前两段已被证明是错误的/不相关的,最后一段只是链接到副本并总结了那里提到的内容。请删除它。这使得删除问题变得更加困难(或者让 roomba 为我们做)。
【解决方案2】:

在使用路径分隔符时,一定要记得正确使用\/。您应该将其更改为

"C:/Users/My Name/Downloads/Projectname/words.txt"

在 Java 程序中。

【讨论】:

  • 转义 \ 会导致完全不同的编译错误。这是错误的。
猜你喜欢
  • 2015-10-26
  • 2014-02-20
  • 1970-01-01
  • 2018-04-07
  • 1970-01-01
  • 2017-01-19
  • 1970-01-01
  • 2017-11-08
  • 1970-01-01
相关资源
最近更新 更多