Netbeans - 在src文件夹中读取数据文件

7

我有一个扫描仪试图读取src文件夹中名为info.data的文件。但我收到了一个异常信息:Exception in thread "main" java.io.FileNotFoundException: info.data (系统找不到指定的文件)。请问在扫描程序中我应该放哪个地址?

3个回答

4

如果输入文件始终是应用程序的一部分(即您稍后也将其放入.jar文件中),则应使用getResourceAsStream()来读取其内容。

InputStream in = getClass().getResourceAsStream(filename);
Scanner scanner = new Scanner(in);

3
在NetBeans中,src文件夹不是编译类的目标位置。因此,如果您使用相对路径,则程序启动时的位置不会是src文件夹。这意味着如果您想让程序按照您的意图运行,通常应该“扩展”构建以将非源文件复制到构建路径中。许多文件已经复制到构建路径中(例如属性文件),但是如果您包含一个没有规则放置在构建路径中的数据文件,则需要自己添加规则。

NetBeans在“标准Java项目”中会自动将所有非Java文件复制到构建文件夹中。如果启用了“保存时编译”,则可能不是这样,因为我从未使用过该功能。 - user330315

0

尝试将其路径放入其中。

File f = new File("C:\\path\\src\\info.data");

谢谢!但是现在我遇到了“主线程中的异常”java.util.InputMismatchException 在java.util.Scanner.throwFor(Scanner.java:840)处 在java.util.Scanner.next(Scanner.java:1461)处。 - Jake
1
这是完全不同的问题。1)确保你的字符串没有在扫描器声明中。如果你有 new Scanner("C:\...") 那就不好了。你需要使用 new Scanner(new File("C:\...")) 或者 new Scanner(file)。2)如果问题真的是数据问题,那就是一个完全不同的问题,可能需要发布一个不同的帖子来解决。 - corsiKa

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接