日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

發布時間:2023/12/10 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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找不到指定的路径...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。