gpt4 book ai didi

Java - 读取文本文件时出现 FilenotfoundException

转载 作者:行者123 更新时间:2023-12-01 14:30:27 27 4
gpt4 key购买 nike

通过运行这个...

File file = new File("Highscores.scr");

我不断收到此错误,而且我真的不知道如何解决它。该文件当前与我的 .java 文件一起位于我的源代码包中。我可以通过指定路径轻松读取该文件,但我打算在多台计算机上运行它,因此我需要该文件可以随程序一起移植。这个问题不是关于读取文本文件,而是在不使用绝对路径的情况下指定其位置。我搜索了答案,但我得到的答案只是“指定名称”和“指定绝对路径”。我发布了一张图片以使其更清晰,但我没有 10 名代表来这样做:/我该怎么做?

干杯。

最佳答案

最好的方法是将其放入类路径中,然后 getResource()

package com.sandbox;

import org.apache.commons.io.FileUtils;

import java.io.File;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;

public class Sandbox {

public static void main(String[] args) throws URISyntaxException, IOException {
new Sandbox().run();
}

private void run() throws URISyntaxException, IOException {
URL resource = Sandbox.class.getResource("/my.txt");
File file = new File(resource.toURI());
String s = FileUtils.readFileToString(file);
System.out.println(s);
}


}

我这样做是因为我假设您需要一个文件。但是,如果您有一个需要 InputStream 的 api,那么最好使用 getResourceAsStream 来代替。

注意路径,/my.txt。这意味着“获取类路径根目录中名为 my.txt 的文件”。我确信您可以阅读有关 getResourcegetResourceAsStream 的更多信息,以了解有关如何执行此操作的更多信息。但这里的关键是,文件的类路径对于您提供可执行文件的任何计算机都是相同的(只要您不在类路径中移动文件)。

顺便说一句,如果您在执行 new File 的行上遇到空指针异常,则意味着您尚未为该文件指定正确的类路径。

关于Java - 读取文本文件时出现 FilenotfoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16891760/

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