gpt4 book ai didi

java - 在 Java 中将文件作为参数传递给另一个类会引发错误 "File or Directory not found"

转载 作者:行者123 更新时间:2023-12-02 04:12:03 25 4
gpt4 key购买 nike

我试图将一个文件从主方法传递到另一个应该处理它的类,但是当该文件在主类中被识别时,它会在第二个方法中抛出此错误。

Exception in thread "main" java.io.FileNotFoundException: file:/home/giovanni/Desktop/spring-course/exercises-part2/word-inspection/target/classes/words.txt (File o directory non esistente)
at java.base/java.io.FileInputStream.open0(Native Method)
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
at java.base/java.util.Scanner.<init>(Scanner.java:639)
at com.vanny96.WordInspection.<init>(WordInspection.java:16)
at com.vanny96.App.main(App.java:13)

文件的路径是正确的,并且文件就在那里,所以我不知道为什么它不起作用。

我尝试四处寻找解决方案,但找不到任何解决方案,并且该文件在主方法中运行良好,而在另一个方法中则不然,这一事实让我很困惑,如果你能向我指出一个线程,其中这是解决了就够了!

代码如下:

主应用程序

package com.vanny96;

import java.io.File;
import java.io.FileNotFoundException;
import java.net.URL;

public class App {
public static void main(String[] args) throws FileNotFoundException
{
URL fileUrl = App.class.getClassLoader().getResource("words.txt");
File file = new File(fileUrl.toString());

WordInspection inspector = new WordInspection(file);
}
}

WordInspection 类

package com.vanny96;

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class WordInspection {
private File file;
private Scanner reader;

public WordInspection(File file) throws FileNotFoundException {

this.file = file;
this.reader = new Scanner(this.file);
}
}

最佳答案

我认为扫描程序无法将文件解析为 URL,但能够将其解析为 URI。

如果你改变线路:

文件 file = new File(fileUrl.toString());

文件 file = new File(fileUrl.toURI());

您的扫描仪应该能够解析该文件(我已经测试过)。您必须为 toUri() 方法添加一个额外的 throws 类。

关于java - 在 Java 中将文件作为参数传递给另一个类会引发错误 "File or Directory not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56682668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com