我在CS课上有一个作业,它说要阅读一个包含几个考试分数的文件,并要求我对它们进行求和和平均。虽然求和和平均很容易,但我在文件读取方面遇到了问题。讲师说要使用这个语法
Scanner scores = new Scanner(new File("scores.dat"));
但是,这会抛出FileNotFoundException
,但是我已经反复检查了该文件是否存在于当前文件夹中,在此之后,我认为它必须使用权限执行某些操作。我更改了每个人的读写权限,但它仍然不起作用,它仍然抛出错误。有人知道为什么会发生这种情况吗?
编辑:它实际上指向了一个目录,但是,我已经修复了这个问题。现在file.exists()
返回true
,但是当我试图将它放入扫描程序
时,它会抛出FileNotFoundException
这是我所有的代码
import java.util.Scanner;
import java.io.*;
public class readInt{
public static void main(String args[]){
File file = new File("lines.txt");
System.out.println(file.exists());
Scanner scan = new Scanner(file);
}
}
在运行时可能引发FileNotFoundException
的情况很多。
>
命名文件不存在。这可能有若干原因,包括:
命名文件实际上是一个目录。
由于某种原因,无法打开命名文件进行读取。
好消息是,问题不可避免地会是上述问题之一。这只是一个问题,找出哪一个。以下是一些你可以尝试的东西:
调用file.isdirectory()
将测试它是否是一个目录。
调用file.canread()
将测试它是否是一个可读文件。
这一行将告诉您当前目录是什么:
System.out.println(new File(".").getAbsolutePath());
这一行将以一种更容易发现意外的前导或尾随空白的方式打印路径名:
System.out.println("The path is '" + path + "'");
在输出中查找意外的空格、换行符等。
事实证明,您的示例代码有一个编译错误。
我在没有处理Netbeans的投诉的情况下运行了您的代码,只得到了以下异常消息:
线程“main”java.lang.RuntimeException中的异常:不可编译的源代码-未报告的异常java.io.FileNotFoundException;必须捕获或声明为抛出
如果将代码更改为以下内容,它将修复该问题。
public static void main(String[] args) throws FileNotFoundException {
File file = new File("scores.dat");
System.out.println(file.exists());
Scanner scan = new Scanner(file);
}
说明:扫描程序(文件)
构造函数被声明为抛出FileNotFoundException
异常。(碰巧扫描仪无法打开文件。)现在FileNotFoundException
是一个检查异常。这意味着可能引发异常的方法必须捕获异常或在throws
子句中声明异常。上述修复采用了后一种方法。
问题内容: 我有一个CS课的作业,它说要读取一个包含多个测试成绩的文件,并要求我对其求和并求平均值。虽然求和平均很容易,但是我在读取文件时遇到了问题。讲师说要使用这种语法 但是,这会引发FileNotFoundException,但是我一遍又一遍地检查了该文件是否存在于当前文件夹中,然后,我发现它必须对权限进行处理。我更改了所有人的读写权限,但是它仍然无法正常工作,并且仍然不断抛出错误。有谁知道为
问题内容: 我有一个非常奇怪的问题,我正在尝试使用一些Java代码和JLayer播放一些MP3。我有一个方法设置来生成文件路径,但这给我带来了很多痛苦。这是return语句(以及该方法涉及的所有代码): 我有一组大约150个mp3文件,它们分别名为1.mp3、2.mp3等。它们最多可达156个(之间缺少一些文件)。根据用户输入的3位数代码,它会播放一种声音。这段代码可以 完美地 工作在1-99之间
尽管如此,我还是得到了例外。我已经用上面的三个文件进行了尝试。该文件也没有在任何地方打开,所以它应该是可读的。我已经花了一个多小时在一个简单的文件名规范上,所以我在这一点上非常紧张。 这里有个例外:
我有一个应用程序,它在根文件夹的lib文件夹中加载一个jar文件,当我把这个根文件夹放在C:\或C:\someFolder中时,它工作得很好,但当我把它放在“程序文件(x86)”中时,它返回了FileNotFoundException,即使在管理模式下已经存在并正在运行cmd。 我得到System.out.println来调试信息并返回正确的路径。 从应用程序中使用println的Stacktra
问题内容: 我正面临着这个奇怪的问题。 我正在尝试读取位于另一台计算机上的文件作为共享资源: 当我运行一个独立的应用程序(一个16行的Java文件)时,一切都很好。但是,当我尝试使用服务器“引擎”(这是一个应用程序引擎,非常类似于可以运行Java程序的Java EE Application Server)使用相同的类和相同的方法读取相同的文件时,“ FileNotFoundException”被抛
问题内容: 通过运行此… 我一直收到这个错误,我真的不知道该如何解决。该文件当前与.java文件位于我的源包中。通过指定路径,我可以很容易地读取文件,但是我打算在多台计算机上运行该文件,因此我需要文件可以随程序一起移植。这个问题不是关于读取文本文件,而是指定其位置而不使用绝对路径。香港专业教育学院寻找答案,但我得到的答案只是“指定名称”和“指定绝对路径”。ID张贴图像,使其更清晰,但我没有10代表