使用 Maven 在 java 中找不到文件异常
file not found exception in java with maven
我正在尝试从目录中读取日志文件:src/main/resources/example.log
该文件已经存在,但它抛出文件未找到异常。
这是我的代码:
public class Main {
public static void main(String[] args) throws FileNotFoundException {
//logfilepath = "src\main\resources\example.log";
Input input=new CommandLineInput();
Textfilehandler textfilehandler = new Textfilehandler();
Log logvariables=new Logvariables();
Firstreadinglog firstreadinglog = new Firstreadinglog(textfilehandler,logvariables);
Logfilehandler logfilehandler = null;
Morereadinglog morereadinglog = new Morereadinglog(textfilehandler,logvariables);
LogAnalyzerApp app=new LogAnalyzerApp(textfilehandler,firstreadinglog,morereadinglog,input);
app.show();
}
}
错误信息是:
java.io.FileNotFoundException: /example.log (No such file or
directory) Exception in thread "main"
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length
0 at
java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
at
java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
at
java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
at java.base/java.util.Objects.checkIndex(Objects.java:373) at
java.base/java.util.ArrayList.get(ArrayList.java:427) at
kln.se.ass2.logfile.Morereadinglog.getcurrentlogstates(Morereadinglog.java:50)
at kln.se.ass2.LogAnalyzerApp.show(LogAnalyzerApp.java:35) at
kln.se.ass2.Main.main(Main.java:29)
我输入的文件路径如下:
src\main\resources\example.log
你可以尝试使用自动设置当前工作目录的Maven资源文件的完整路径,然后你可以只使用:
File resourcesDirectory = new File("src/main/resources/example.log");
String logfilepath = resourcesDirectory.getAbsolutePath();
问题是我使用 Linux OS。我输入了带有反斜杠的目录,如 Windows。现在我明白了。谢谢。
我正在尝试从目录中读取日志文件:src/main/resources/example.log 该文件已经存在,但它抛出文件未找到异常。 这是我的代码:
public class Main {
public static void main(String[] args) throws FileNotFoundException {
//logfilepath = "src\main\resources\example.log";
Input input=new CommandLineInput();
Textfilehandler textfilehandler = new Textfilehandler();
Log logvariables=new Logvariables();
Firstreadinglog firstreadinglog = new Firstreadinglog(textfilehandler,logvariables);
Logfilehandler logfilehandler = null;
Morereadinglog morereadinglog = new Morereadinglog(textfilehandler,logvariables);
LogAnalyzerApp app=new LogAnalyzerApp(textfilehandler,firstreadinglog,morereadinglog,input);
app.show();
}
}
错误信息是:
java.io.FileNotFoundException: /example.log (No such file or directory) Exception in thread "main" java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 0 at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) at java.base/java.util.Objects.checkIndex(Objects.java:373) at java.base/java.util.ArrayList.get(ArrayList.java:427) at kln.se.ass2.logfile.Morereadinglog.getcurrentlogstates(Morereadinglog.java:50) at kln.se.ass2.LogAnalyzerApp.show(LogAnalyzerApp.java:35) at kln.se.ass2.Main.main(Main.java:29)
我输入的文件路径如下:
src\main\resources\example.log
你可以尝试使用自动设置当前工作目录的Maven资源文件的完整路径,然后你可以只使用:
File resourcesDirectory = new File("src/main/resources/example.log");
String logfilepath = resourcesDirectory.getAbsolutePath();
问题是我使用 Linux OS。我输入了带有反斜杠的目录,如 Windows。现在我明白了。谢谢。