Java中的文件io
对于以下java程序,我将此作为错误:Java中的文件io,java,file-io,Java,File Io,对于以下java程序,我将此作为错误: Exception in thread "main" java.io.FileNotFoundException: rawData.txt (No such file or directory) at java.io.FileInputStream.open(Native Method) at java.io.FileInputStream.<init>(FileInputStream.java:120) at java
Exception in thread "main" java.io.FileNotFoundException: rawData.txt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:120)
at java.util.Scanner.<init>(Scanner.java:636)
at Study_workshop.main(Study_workshop.java:15)
您可以使用Study_workshop.class.getResourcerawData.txt获取该文件 一些做法: 如果可以,请使用绝对路径,如/opt/data/xxx.txt。 使用YourClass.class.getResource获取与YourClass.class相同目录中的文件。 使用YourClass.class.getClassLoader.getResource在类的类路径中获取文件。
使用相对路径不是一种好做法,因为您永远不知道程序将在何处以及如何执行。您可以使用Study\u workshop.class.getResourcerawData.txt获取该文件 一些做法: 如果可以,请使用绝对路径,如/opt/data/xxx.txt。 使用YourClass.class.getResource获取与YourClass.class相同目录中的文件。 使用YourClass.class.getClassLoader.getResource在类的类路径中获取文件。
使用相对路径不是一种好做法,因为您永远不知道程序将在何处以及如何执行。要解决此错误,可以将完全限定路径传递给文件构造函数:-
Scanner diskScanner = new Scanner(new File("/home/sre/bin/rawData.txt"));
要解决此错误,可以将完全限定路径传递给文件构造函数:-
Scanner diskScanner = new Scanner(new File("/home/sre/bin/rawData.txt"));
执行程序时,所指向的目录是系统类的user.dir属性给定的目录:
System.getProperty("user.dir")
因此,如果文件不在该目录中,则必须使用绝对路径:
new File("yourPath/rawData.txt")
执行程序时,所指向的目录是系统类的user.dir属性给定的目录:
System.getProperty("user.dir")
因此,如果文件不在该目录中,则必须使用绝对路径:
new File("yourPath/rawData.txt")
将项目文件夹中的文件从bin移动到项目父文件夹。默认文件路径位于project folder中,因为您只指定了文件名。相对路径是根据执行程序的目录解析的,而不是解析为.java或.class文件所在的任何目录。如果您的文件位于/projectFolder/bin/中,则应将此路径指定给file constructor new file/bin/rawData.txt。默认情况下,构造函数正在查看项目的根目录。请将项目文件夹中的文件从bin移动到项目父文件夹。默认文件路径位于project folder中,因为您只指定了文件名。相对路径是根据执行程序的目录解析的,而不是解析为.java或.class文件所在的任何目录。如果您的文件位于/projectFolder/bin/中,则应将此路径指定给file constructor new file/bin/rawData.txt。默认情况下,构造函数在项目的根目录中查找。