我正在尝试从 Java 代码中读取 javascript 文件内容。这是我的代码:
String javascript = "";
URL url = getClass().getResource("/elementController.js");
System.out.println(url.toString());
try {
Scanner sc = new Scanner(new File(url.getPath()));
while (sc.hasNext()) {
javascript += sc.nextLine() + "\n";
}
sc.close();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println 打印以下内容:文件:/ C : /Users/J%c3%bcesse/IdeaProjects/JavaFxProject/target/classes/elementController.js
作为此代码执行的结果,我得到以下堆栈跟踪:
java.io.FileNotFoundException: C:\Users\J%c3%bcesse\IdeaProjects\ThesisProject\target\classes\elementController.js (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.<init>(FileInputStream.java:138)
at java.util.Scanner.<init>(Scanner.java:611)
at gui.WebViewWindow$MyBrowser.<init>(WebViewWindow.java:82)
at gui.WebViewWindow.display(WebViewWindow.java:58)
但是当我转到 javascript 文件所在的目录时,我可以看到它在那里。目录图片:
我不知道为什么会出现此错误,即使该文件存在于那里。有什么建议么?
URL 不是文件名,资源也不是文件。FileInputStream
由于这两个原因,您不能使用它。一旦资源被打包到你的 JAR 文件中,整个方案就会崩溃。您需要使用资源的输入流:
URL url = getClass().getResource("/elementController.js");
System.out.println(url.toString());
try {
Scanner sc = new Scanner(url.openStream());
由于您只是在阅读行,因此没有充分的理由Scanner
实际使用 a :您也可以使用BufferReader
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句