小编典典

Java-FilenotfoundException用于读取文本文件

java

通过运行此…

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

我一直收到这个错误,我真的不知道该如何解决。该文件当前与.java文件位于我的源包中。通过指定路径,我可以很容易地读取文件,但是我打算在多台计算机上运行该文件,因此我需要文件可以随程序一起移植。这个问题不是关于读取文本文件,而是指定其位置而不使用绝对路径。香港专业教育学院寻找答案,但我得到的答案只是“指定名称”和“指定绝对路径”。ID张贴图像,使其更清晰,但我没有10代表这样做://我该怎么做?

干杯。


阅读 258

收藏
2020-11-30

共1个答案

小编典典

最好的方法是将其放在您的类路径中,然后再将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);
    }


}

我这样做是因为我假设您需要一个File。但是,如果您的API带有一个InputStream代替,则最好使用getResourceAsStream代替。

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

顺便说一句,如果在行上获得空指针异常,则new File意味着您没有为文件指定正确的类路径。

2020-11-30