我正在爲需要從項目目錄中的文本文件讀取的學校項目開展工作。我有它的工作,但只是因爲我的硬件編碼到我的電腦的文件路徑。如何從項目中獲取存儲項目的文件路徑?
即
String path = "C:\\Users\\MyName\\workspace\\ProjectName\\"
如果我把它給我的老師,文件路徑將導致錯誤。
有沒有一種方法可以從項目內部將文件路徑設置爲存儲項目的任何位置?
我正在爲需要從項目目錄中的文本文件讀取的學校項目開展工作。我有它的工作,但只是因爲我的硬件編碼到我的電腦的文件路徑。如何從項目中獲取存儲項目的文件路徑?
即
String path = "C:\\Users\\MyName\\workspace\\ProjectName\\"
如果我把它給我的老師,文件路徑將導致錯誤。
有沒有一種方法可以從項目內部將文件路徑設置爲存儲項目的任何位置?
只要把文件名。
字符串路徑=「XPTO.txt」
這意味着你的文件是在項目的根。
如果我的文件位於子目錄而不是項目根目錄,然後在其前面添加子目錄,這也可以工作嗎? – yourselvs 2015-03-24 22:37:41
也可以。不要忘記製作「/」的風景。 – 2015-03-25 00:28:38
資源文件可以相對於項目中的類文件進行放置(通過這種方式,它們可以與類文件一起打包爲jar文件)。要從您的項目中訪問這些,您可以使用Class.getResource()或Class.getResourceAsStream。例如...
InputStream is = MyClass.class.getResourceAsStream('path/to/file');
其中'path/to/file'是相對於MyClass所在的路徑。請注意,在此路徑開始處缺少'/'(如果以「/」開頭),它將是相對於項目最高包級別的絕對路徑。還要注意,可以使用相對文件路徑來讀取類包目錄結構外部的文件。
當你說'path/to/file'時,我對你的意思感到困惑。如果我把項目的文件路徑放在那裏,當我把它發送給我的老師時,文件路徑是否會改變?然後我會有同樣的問題。 – yourselvs 2015-03-24 22:31:45
@yourselvs閱讀鏈接我對你的問題進行了評論,以查看相對(與你的項目的位置有關)和絕對(與文件系統的根 - 與你的情況下的C:\有關)文件路徑之間的區別。 – childofsoong 2015-03-24 22:34:50
您正在閱讀文件相對於類的位置(而不是絕對的,因爲您的初始文章建議您正在做)。請參閱提供的@soong鏈接。 – copeg 2015-03-24 22:35:25
只是做WhateverNeedsAPath( 「東西」)//路徑將是徘徊無論/項目名/東西
http://www.coderanch.com/t/264434/ java-programmer-SCJP/certification/difference-absolute-path-relative-paths - 這應該對你有幫助 – childofsoong 2015-03-24 22:26:52
String path = System.getProperty(「user.dir」); – 2015-03-24 22:30:02
FYI斜槓工作得很好,Java會轉換成Windows'backspash'C:/ Users/...' – 2015-03-24 22:30:26