Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.FileNotFoundException(未找到文件)使用扫描程序。什么';我的密码有错吗?_Java_Java.util.scanner_Filenotfoundexception - Fatal编程技术网

java.io.FileNotFoundException(未找到文件)使用扫描程序。什么';我的密码有错吗?

java.io.FileNotFoundException(未找到文件)使用扫描程序。什么';我的密码有错吗?,java,java.util.scanner,filenotfoundexception,Java,Java.util.scanner,Filenotfoundexception,我的netbeans“/build/classes”目录中有一个.txt文件(“file.txt”) 在相同的目录中,有为以下代码编译的.class文件: try { File f = new File("file.txt"); Scanner sc = new Scanner(f); } catch (IOException e) { System.out.println(e); } 调试代码(“Scanner sc..”中的断点)将启动异常并打印以下内容: java.io.FileN

我的netbeans“/build/classes”目录中有一个.txt文件(“file.txt”)

相同的目录中,有为以下代码编译的.class文件:

try {
File f = new File("file.txt");
Scanner sc = new Scanner(f);
}
catch (IOException e) {
   System.out.println(e);
}
调试代码(“Scanner sc..”中的断点)将启动异常并打印以下内容:

java.io.FileNotFoundException:file.txt(系统找不到 指定文件)

我还尝试使用“/file.txt”和“/file.txt”,但结果相同

提前感谢您提供的任何提示

请尝试:

File f = new File("./build/classes/file.txt");

JVM将在当前工作目录中查找该文件

这取决于IDE设置(程序的执行方式)

要确定它希望
file.txt
位于何处,您可以

System.out.println(new File("."));
例如,如果它输出

/some/path/project/build

您应该将
file.txt
放在生成目录中(或指定相对于生成目录的正确路径)。

如果您只使用
newfile(“pathtofile”)
则该路径相对于当前工作目录,而不一定是类文件所在的目录

如果您确定文件位于类路径的某个位置,则可以使用以下模式:

URL path = ClassLoader.getSystemResource("file.txt");
if(path==null) {
     //The file was not found, insert error handling here
}
File f = new File(path.toURI());

加载文件对象,在其当前目录中查找匹配项。。。。直接在项目文件夹中加载类文件,而不是在源中加载。。。。。将文件直接放在项目文件夹中

我想你的问题已经完全被这个问题的公认答案所回答:除了哈桑的评论之外,我总是在关于文件的错误消息中包含f.getAbsolutePath(),这样我就知道我在说什么文件了。谢谢。现在我试试看。但有一个问题:如果我用Netbeans(例如)编译代码,然后一个人在另一台计算机的windows命令行中执行它,它会正常工作还是会出现同样的问题?只要提供相对于当前工作目录的文件路径,它就可以正常工作(只要windows用户从同一路径启动程序)。
Use "." to denote the current directory

String path = "./build/classes/file.txt";

File f = new File(path);