<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    沒(méi)有眼淚
    Don't Cry!
    posts - 13,comments - 44,trackbacks - 0

    File類(lèi)是用來(lái)構(gòu)造文件或文件夾的類(lèi),在其構(gòu)造函數(shù)中要求傳入一個(gè)String類(lèi)型的參數(shù),用于指示文件所在的路徑.以前一直使用絕對(duì)路徑作為參數(shù),其實(shí)這里也可以使用相對(duì)路徑.使用絕對(duì)路徑不用說(shuō),很容易就能定位到文件,那么使用了相對(duì)路徑jvm如何定位文件的呢?

    按照jdk Doc上的說(shuō)法絕對(duì)路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。相反,相對(duì)路徑名必須使用來(lái)自其他路徑名的信息進(jìn)行解釋。默認(rèn)情況下,java.io 包中的類(lèi)總是根據(jù)當(dāng)前用戶目錄來(lái)分析相對(duì)路徑名。此目錄由系統(tǒng)屬性 user.dir 指定,通常是 Java 虛擬機(jī)的調(diào)用目錄.

    相對(duì)路徑顧名思義,相對(duì)于某個(gè)路徑,那么究竟相對(duì)于什么路徑我們必須弄明白.按照上面jdk文檔上講的這個(gè)路徑是當(dāng)前用戶目錄也就是java虛擬機(jī)的調(diào)用目錄.更明白的說(shuō)這個(gè)路徑其實(shí)是我們?cè)谀睦镎{(diào)用jvm的路徑.舉個(gè)例子:

    假設(shè)有一java源文件Example.javad盤(pán)根目錄下,該文件不含package信息.我們進(jìn)入命令行窗口,然后使用d:命令切換到d盤(pán)根目錄下,然后用javac Example.java來(lái)編譯此文件,編譯無(wú)錯(cuò)后,會(huì)在d盤(pán)根目錄下自動(dòng)生成Example.class文件.我們?cè)谡{(diào)用java Example來(lái)運(yùn)行該程序.此時(shí)我們已經(jīng)啟動(dòng)了一個(gè)jvm,這個(gè)jvm是在d盤(pán)根目錄下被啟動(dòng)的,所以此jvm所加載的程序中File類(lèi)的相對(duì)路徑也就是相對(duì)這個(gè)路徑的,d盤(pán)根目錄:D:\.同時(shí) 當(dāng)前用戶目錄也是D:\.System.getProperty(user.dir);系統(tǒng)變量user.dir存放的也是這個(gè)值.

    我們可以多做幾次試驗(yàn),Example.class移動(dòng)到不同路徑下,同時(shí)在那些路徑下,執(zhí)行java Example命令啟動(dòng)jvm,我們會(huì)發(fā)現(xiàn)這個(gè)當(dāng)前用戶目錄是不斷變化的,它的路徑始終和我們?cè)谀膯?dòng)jvm的路徑是一致的.

    搞清了這些,我們可以使用相對(duì)路徑來(lái)創(chuàng)建文件,例如:

    File file = new File(a.txt);

    File.createNewFile();

    假設(shè)jvm是在D:\下啟動(dòng)的,那么a.txt就會(huì)生成在D:\a.txt;

    此外,這個(gè)參數(shù)還可以使用一些常用的路徑表示方法,例如..\代表當(dāng)前目錄,這個(gè)目錄也就是jvm啟動(dòng)路徑.所以如下代碼能得到當(dāng)前目錄完整路徑:

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

    System.out.println(absolutePath);//D:\

    最后要說(shuō)說(shuō)在eclipse中的情況:

    Eclipse中啟動(dòng)jvm都是在項(xiàng)目根路徑上啟動(dòng)的.比如有個(gè)項(xiàng)目名為blog,其完整路徑為:D:\work\IDE\workspace\blog.那么這個(gè)路徑就是jvm的啟動(dòng)路徑了.所以以上代碼如果在eclipse里運(yùn)行,則輸出結(jié)果為” D:\work\IDE\workspace\blog.”

    Tomcat中的情況.

    如果在tomcat中運(yùn)行web應(yīng)用,此時(shí),如果我們?cè)谀硞€(gè)類(lèi)中使用如下代碼:

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

    System.out.println(absolutePath);

    那么輸出的將是tomcat下的bin目錄.我的機(jī)器就是 D:\work\server\jakarta-tomcat-5.0.28\bin\.”,由此可以看出tomcat服務(wù)器是在bin目錄下啟動(dòng)jvm.其實(shí)是在bin目錄下的 catalina.bat”文件中啟動(dòng)jvm.

    posted on 2009-04-15 00:01 zhangchao 閱讀(17794) 評(píng)論(10)  編輯  收藏

    FeedBack:
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-01-05 15:06 | hzg
    講得好,多謝了  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-03-09 13:14 | witty
    講得非常好,很透徹,謝謝  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-04-08 16:30 | 路過(guò)
    講得很清楚,謝謝!  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-04-13 21:25 | magic
    tomcat 運(yùn)行jvm的根目錄應(yīng)該是安裝tomcat的路徑,即D:\work\server\jakarta-tomcat-5.0.28\ .我親自測(cè)試的。找了好一會(huì)。并不是bin目錄。  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-06-29 15:27 | linux
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2010-07-15 12:22 | songwei
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2011-10-17 14:01 | dt
    寫(xiě)的很透徹  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.[未登錄](méi)
    2013-03-08 16:46 | robin
    @magic
    我的是bin目錄  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.
    2014-01-16 15:22 | ayis
    @magic
    確實(shí)誒,在linux環(huán)境下測(cè)試的,tomcat下當(dāng)前目錄為tomcat的安裝目錄。
    日志:DEBUG [main] Wap***Util.init(29) | filename=/usr/local/tomcat/.,打印的為“.”所在的目錄。  回復(fù)  更多評(píng)論
      
    # re: java.io.File中的絕對(duì)路徑和相對(duì)路徑.[未登錄](méi)
    2014-07-10 13:42 | deepblue
    內(nèi)容講解的很詳細(xì),受教了,另外關(guān)于JAVA讀取文件的內(nèi)容這個(gè)網(wǎng)頁(yè)講解的也不錯(cuò),大家可以去看看:http://www.strutshome.com/index.php/archives/421  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 丁香五月亚洲综合深深爱| 亚洲日产无码中文字幕| 色天使亚洲综合在线观看| 2021国产精品成人免费视频| 亚洲一区二区三区高清不卡| 国产精品免费综合一区视频| eeuss影院免费92242部| 亚洲视频在线观看一区| 国产免费的野战视频| 丝袜足液精子免费视频| 亚洲综合一区二区精品久久| 永久免费视频v片www| 日韩精品无码免费专区午夜| 国产成人亚洲精品| 久久香蕉国产线看观看亚洲片| 18禁网站免费无遮挡无码中文 | 日本高清不卡aⅴ免费网站| 激情小说亚洲图片| 亚洲va国产va天堂va久久| 深夜国产福利99亚洲视频| 88xx成人永久免费观看| 午夜亚洲国产精品福利| 亚洲国产精品久久久久婷婷老年| 国产精品亚洲αv天堂无码| 亚洲视频在线观看免费视频| 国产精品亚洲色图| 亚洲欧美国产国产综合一区| 久久久亚洲精品视频| 免费又黄又爽又猛的毛片| 在线观看免费av网站| 久久精品国产免费一区| 老牛精品亚洲成av人片| 亚洲AV无码AV男人的天堂不卡 | 男女作爱免费网站| 亚洲国产成人在线视频| 亚洲愉拍99热成人精品热久久| 国产又粗又猛又爽又黄的免费视频 | 亚洲人成在线播放网站岛国| 亚洲Av无码精品色午夜| 亚洲啪啪综合AV一区| 国产亚洲精aa成人网站|