做到這一點,最好的辦法是把它放在你的classpath然後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
。但是,如果您有一個採用InputStream
的API,則最好使用getResourceAsStream
代替。
注意路徑/my.txt
。這意味着,「獲取名爲my.txt的文件,該文件位於類路徑的根目錄中」。我確信您可以閱讀更多關於getResource
和getResourceAsStream
的信息,以瞭解更多關於如何執行此操作的信息。但關鍵在於對於任何給予可執行文件的計算機(只要不在文件路徑中移動文件),文件的類路徑都是相同的。
順便說一句,如果你在new File
的行上得到空指針異常,那意味着你沒有爲文件指定正確的類路徑。
您的班級位於哪個目錄? –
嘗試'System.out.println(新文件(「。」)。getAbsolutePath())'看看這是否是正確的目錄。 –
沒有問題發佈圖像某些機構會編輯它 – pinkpanther