java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...
如何從Java項目中的相對路徑讀取文件? java.io.File找不到指定的路徑
我有一個包含2個包的項目:
ListStopWords.txt
ListStopWords.txt
在包(2)中我有一個文本文件ListStopWords.txt,在包(1)中我有一個類FileLoadder.這是代碼FileLoader:
File file = new File("properties\\files\\ListStopWords.txt");
但有這個錯誤:
The system cannot find the path specified
你能解決一下嗎? 謝謝。
tiendv asked 2019-07-25T13:51:44Z
10個解決方案
143 votes
如果它已經在類路徑中,那么只需從類路徑中獲取它。 請勿在static中使用相對路徑。它們依賴于當前工作目錄,您無法完全控制Java代碼。
假設static與FileLoader.class類在同一個包中:
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.getPath());
或者如果你所追求的只是static:
InputStream input = getClass().getResourceAsStream("ListStopWords.txt");
如果文件是-as包名稱提示 - 實際上是一個完全屬性文件(包含static行),只有“錯誤”擴展名,那么您可以立即將其提供給static方法。
Properties properties = new Properties();
properties.load(getClass().getResourceAsStream("ListStopWords.txt"));
注意:當您嘗試從static上下文中訪問它時,請在上面的示例中使用FileLoader.class而不是getClass()。
BalusC answered 2019-07-25T13:52:31Z
37 votes
如果我們要指定文件的相對路徑,可以使用以下行。
File file = new File("./properties/files/ListStopWords.txt");
santhosh answered 2019-07-25T13:52:59Z
20 votes
相對路徑在java中使用。運營商。
。 表示與當前運行的上下文相同的文件夾。
..表示當前運行的上下文的父文件夾。
所以問題是你如何知道java目前正在尋找的路徑?
做一個小實驗
File directory = new File("./");
System.out.println(directory.getAbsolutePath());
觀察輸出,您將了解java正在查找的當前目錄。 從那里,只需使用./運算符來定位您的文件。
例如,如果輸出是
G:\ JAVA8Ws\ MyProject的\內容。
并且您的文件存在于MyProject簡單使用的文件夾中
File resourceFile = new File("../myFile.txt");
希望這可以幫助
Samrat answered 2019-07-25T13:54:26Z
7 votes
InputStream in = FileLoader.class.getResourceAsStream("");
try {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
} catch (Exception e) {
e.printStackTrace();
}
frictionlesspulley answered 2019-07-25T13:54:45Z
6 votes
試試.\properties\files\ListStopWords.txt
bUg. answered 2019-07-25T13:55:13Z
4 votes
雖然BalusC提供的答案適用于這種情況,但是當文件路徑包含空格時它會中斷,因為在URL中,這些將被轉換為%20,而不是有效的文件名。 如果使用URI而不是String構造File對象,則將正確處理空格:
URL url = getClass().getResource("ListStopWords.txt");
File file = new File(url.toURI());
Mark Krijgsman answered 2019-07-25T13:55:39Z
1 votes
我本可以評論,但我的代表較少。薩姆拉特的回答為我做了這個工作。 最好通過以下代碼查看當前目錄路徑。
File directory = new File("./");
System.out.println(directory.getAbsolutePath());
我只是用它來糾正我在項目中遇到的問題。 請務必使用./返回當前目錄的父目錄。
./test/conf/appProperties/keystore
Aditya Bhardwaj answered 2019-07-25T13:56:16Z
0 votes
我想在src / main // js / Simulator.java中解析'command.json'。 為此我在src文件夾中復制了json文件并給出了這樣的絕對路徑:
Object obj = parser.parse(new FileReader("./src/command.json"));
sver answered 2019-07-25T13:56:42Z
-1 votes
如果您嘗試從靜態方法或靜態阻止調用getClass(),則可以執行以下方法。
您可以在要加載的Properties對象上調用getClass()。
public static Properties pathProperties = null;
static {
pathProperties = new Properties();
String pathPropertiesFile = "/file.xml;
InputStream paths = pathProperties.getClass().getResourceAsStream(pathPropertiesFile);
}
arun_kk answered 2019-07-25T13:57:16Z
-1 votes
如果未讀取文本文件,請嘗試使用更接近的絕對路徑(如果您愿意)你可以使用完整的絕對路徑,)像這樣:
FileInputStream fin=new FileInputStream("\\Dash\\src\\RS\\Test.txt");
假設絕對路徑是:
C:\\Folder1\\Folder2\\Dash\\src\\RS\\Test.txt
KR N answered 2019-07-25T13:57:51Z
總結
以上是生活随笔為你收集整理的java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 连接oracle_常用的P
- 下一篇: 投资与理财的区别与联系,表现在这些方面