【发布时间】:2017-04-20 20:45:41
【问题描述】:
在开始之前,我想说我今天花了 4 小时、昨天 6 小时和之前 3 小时来研究这个问题。我已经阅读了我能找到的每一篇文章,遵循了每一条说明,重新启动了我的项目,重新安装了我的 IDE(Netbeans),甚至重新安装了我的操作系统,但我没有找到一条有用的建议,所以我想我需要寻求帮助。
是的,我已将文件放在正确的位置 ...事实上,我已将文件放在每个位置。在我的项目中的每个文件夹中都有一个副本,在整个项目文件夹中以及在我的文档中也有一个副本。我已经多次检查并更改并默认根目录。请不要告诉我只使用异常处理程序。程序读取的文件保证存在并且包含一些东西。
所以这是我的问题: 我正在尝试从文件中输入和读取,但是,结果总是找不到该文件。这是我的代码示例(实际上取决于此 atm):
package project2;
import java.io.FileReader;
import java.io.*;
import java.util.Scanner;
public class Project2 {
public static void main(String[] args) {
FileReader inputFile = new FileReader(args[0]);
}
}
这是我得到的两个错误(我也得到 Filenotfound 错误,但我认为我不需要添加):
Exception in thread "main" java.lang.RuntimeException: Uncompilable source
code - unreported exception java.io.FileNotFoundException; must be caught or
declared to be thrown
at project2.Project2.main(Project2.java:14)
C:\Users\jarre\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53:
Java returned: 1
BUILD FAILED (total time: 1 second)
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at project2.Project2.main(Project2.java:24)
C:\Users\jarre\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53:
Java returned: 1
BUILD FAILED (total time: 0 seconds)
就是这样。文件名来自参数,我已经尝试了所有可能的名称变体。我尝试在参数之外命名文件,就像文件名本身以及显式文件路径一样。
使用扫描仪无法读取任何内容。FileReader 甚至无法运行。
文本文件没有特殊格式或字符,我使用了我提供的一个和多个我手动输入的文件,以防我收到的文件有问题。我还确保“.txt”永远不会被读取或使用两次(无论如何,我保持我的扩展名)。 我已经检查了所有文件和 Netbeans 程序本身的属性和权限。我还确保文本文件包含在项目构建中。
我现在没有使用任何额外的代码,因为我不能做任何事情,直到我确定我可以读入一个文件,然后也输出一个。我也知道文本文件没有损坏,因为我可以在 Python 中很好地读取它们,但是,我必须使用 Java,而且我必须使用 Netbeans。
这对我来说是一个新问题,我一直能够很好地读取文件,而且我已经用尽了我的选择。如果有人有任何想法,我真的需要一些帮助。
【问题讨论】:
-
FileNotFoundException的意思正是它所说的。在尝试访问该文件之前,打印出完全限定的路径并验证该文件实际上是您尝试从中读取它的位置,因为显然它不是。File f = new File(args[0]); System.out.println(f.getAbsolutePath()); -
已经完成了。我使用的路径与正确的文件一起显示。当我说我将文件副本放在每个文件夹和子文件夹中时,我的意思是,以防万一。
-
请分享您用来调用应用程序的命令,以及我上述请求的输出。路径有空格吗?特殊的角色?你是否有适当的权限来寻找这个位置?
-
C:\Users\jarre\Documents\NetBeansProjects\Project2\crazy.txt 我在我的 IDE 中运行它,不,我不认为任何东西包含任何奇怪或特殊的字符.
-
首先要尝试排除问题的来源。您可以尝试直接从命令运行应用程序,看看它是否按预期工作:“javac Project2.java”后跟“java Project2 C:\Users\jarre\Documents\NetBeansProjects\Project2\crazy.txt”
标签: java netbeans file-io java.util.scanner filereader