通过运行此…
File file = new File("Highscores.scr");
我一直收到这个错误,我真的不知道该如何解决。该文件当前与.java文件位于我的源包中。通过指定路径,我可以很容易地读取文件,但是我打算在多台计算机上运行该文件,因此我需要文件可以随程序一起移植。这个问题不是关于读取文本文件,而是指定其位置而不使用绝对路径。香港专业教育学院寻找答案,但我得到的答案只是“指定名称”和“指定绝对路径”。ID张贴图像,使其更清晰,但我没有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); } }
我这样做是因为我假设您需要一个File。但是,如果您的API带有一个InputStream代替,则最好使用getResourceAsStream代替。
File
InputStream
getResourceAsStream
注意路径/my.txt。这意味着,“获取一个名为my.txt的文件,该文件位于类路径的根目录中”。我相信您可以阅读更多有关的信息,getResource并getResourceAsStream了解更多有关如何执行此操作的信息。但是这里的关键是, 文件的类路径对于您将可执行文件提供给任何计算机 (只要您不在类路径中移动文件)都相同。
/my.txt
getResource
顺便说一句,如果在行上获得空指针异常,则new File意味着您没有为文件指定正确的类路径。
new File