摘要:如果使用類,則代表該類所在的包為相對(duì)路徑的起點(diǎn)。雖然并沒(méi)有針對(duì)其性能作出確切的比較,不過(guò)就現(xiàn)有的網(wǎng)絡(luò)統(tǒng)計(jì)來(lái)說(shuō),類在使用中大都會(huì)比類快并且在最新的中,也是用代替了的操作,相關(guān)的文章請(qǐng)參考。綜上,推薦使用類替代類。
前言
最近做項(xiàng)目的時(shí)候,用java獲取文件。
雖然用框架很容易,但是其內(nèi)部的原理讓我很疑惑。在自己寫(xiě)相似的代碼的時(shí)候,往往會(huì)出現(xiàn)各種各樣的錯(cuò)誤。所以這里,對(duì)相關(guān)的類以及方法進(jìn)行一個(gè)整合。
比如 file 類,path 類。 絕對(duì)路徑與相對(duì)路徑。 getResource 方法 , getRealPath方法等。
在使用 File 類的時(shí)候,發(fā)現(xiàn)絕對(duì)路徑和相對(duì)路徑的使用有很大的區(qū)別。
大家都知道:File類是用來(lái)構(gòu)造文件或文件夾的類,在其構(gòu)造函數(shù)中要求傳入一個(gè)String類型的參數(shù),用于指示文件所在的路徑
絕對(duì)路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。
相對(duì)路徑名必須使用來(lái)自其他路徑名的信息進(jìn)行解釋
因?yàn)槲沂褂玫氖?idea ,所以下面,我就用idea 給大家演示一下,他們的區(qū)別。
廢話不多說(shuō),直接上代碼
public class testFile { public static void main(String[] args) throws IOException { // 絕對(duì)路徑 File fi1 = new File("D://sy.ini"); // 相對(duì)路徑 File fi2 = new File("sy.ini"); String test = "000"; try { // 將 test 分別寫(xiě)入 fi1 fi2 FileOutputStream fo1 = new FileOutputStream(fi1); FileOutputStream fo2 = new FileOutputStream(fi2); fo1.write(test.getBytes()); fo2.write(test.getBytes()); } catch (FileNotFoundException e) { e.printStackTrace(); } // 驗(yàn)證 getPath 與 getAbsolubtePath 的區(qū)別。 System.out.println(fi1.getPath()); System.out.println(fi1.getAbsolutePath()); System.out.println(fi2.getPath()); System.out.println(fi2.getAbsolutePath()); } }
輸出的結(jié)果如下
D:sy.ini D:sy.ini sy.ini D:Programme