2015-06-29 53 views
-1

我正在修改我的一些代碼。此代碼看起來目前這樣:用於撰寫文件路徑的java8類

File makeFile() { 

    StringBuilder builder = new StringBuilder(); 

    builder.append("/"); 

    if(a) builder.append(foodir).append('/'); 
    if(b) builder.append(bardir).append('/'); 

    builder.append("file.txt"); 

    return new File(b.toString()); 
} 

我真的,因爲它使用StringBuilder建立一些東西,確實應該擺在首位某種Path對象不喜歡這樣的代碼非常多。

那麼至少在Java8中有一些方法可以以更簡潔的方式構建PathFile對象?

注意:我不是在尋找使用Collections和後來加入他們我正在尋找的東西直接與文件系統對象的工作。)

+0

對於初學者來說,如果你使用的是Java 8,這意味着你有java.nio.file可用;這意味着你可以使用'Files'和'Paths'。 – fge

+1

答案在這個問題上。看看File的javadoc,你會發現你正在尋找的構造函數。看看Path的javadoc,你會發現一個resolve()方法。 –

+0

順便使用File.separator代替「/」。 – Sneh

回答

0

從路徑的javadoc:

Path p = Paths.get(String first, String... more) 

Path p = Paths.get(URI uri) 

一旦你有了你的Path對象,你可以用下一個文件擴展名來調用resolve()方法。你應該小心使用「/」,因爲這是平臺相關的。路徑庫將保證你的平臺獨立性