2016-01-07 157 views
0

我有一個項目,這種結構閱讀相對路徑(外類路徑)

data_folder/ 
myProject 
    module1 
     main/java 
     test/java 
     pom.xml 
    module2 
    ... 
pom.xml 

我想用測試和主類訪問data_folder

在測試類,有可能使用

new File("data_folder/myfile.txt") 

但在主要的類,它只是使用

new File("../data_folder/myfile.txt") 

可能這些文件必須在類路徑之外,因爲他們是編輯。有沒有更好的方法來做到這一點?

+0

爲什麼沒有myfile.txt的固定位置並通過指定完整路徑在代碼中使用該位置? – SomeDude

+0

如果它們是可編輯的,那麼它們不在您的項目中。我建議你有一個像'inputDirectory'這樣的變量,並在其中放置可編輯的文件。出於測試目的,這個'inputDirectory'可以是位於'/ tmp'中的臨時目錄。 –

+0

我們在什麼環境?我們是從IDE還是從shell運行? – rghome

回答

1

常見的方式做,這將是data_folder作爲參數的全位置傳遞,當你開始你的程序/測試:

-DFILES_LOCATION=/somelocation/data_folder

然後訪問和創建這樣的文件:

String root_dir = System.getProperty("FILES_LOCATION"); File myFile = new File(rootDir+File.separator+"myfile.txt")

然後,它並不重要,如果它是一個相對路徑或不 - 你只要點到輸入/數據文件Ar處即