java.io.FileNotFoundException(未找到文件)使用扫描程序。什么';我的密码有错吗?
我的netbeans“/build/classes”目录中有一个.txt文件(“file.txt”) 在相同的目录中,有为以下代码编译的.class文件: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
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);