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

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

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

    沒有眼淚
    Don't Cry!
    posts - 13,comments - 44,trackbacks - 0

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

    按照jdk Doc上的說法絕對路徑名是完整的路徑名,不需要任何其他信息就可以定位自身表示的文件。相反,相對路徑名必須使用來自其他路徑名的信息進行解釋。默認情況下,java.io 包中的類總是根據當前用戶目錄來分析相對路徑名。此目錄由系統屬性 user.dir 指定,通常是 Java 虛擬機的調用目錄.

    相對路徑顧名思義,相對于某個路徑,那么究竟相對于什么路徑我們必須弄明白.按照上面jdk文檔上講的這個路徑是當前用戶目錄也就是java虛擬機的調用目錄.更明白的說這個路徑其實是我們在哪里調用jvm的路徑.舉個例子:

    假設有一java源文件Example.javad盤根目錄下,該文件不含package信息.我們進入命令行窗口,然后使用d:命令切換到d盤根目錄下,然后用javac Example.java來編譯此文件,編譯無錯后,會在d盤根目錄下自動生成Example.class文件.我們在調用java Example來運行該程序.此時我們已經啟動了一個jvm,這個jvm是在d盤根目錄下被啟動的,所以此jvm所加載的程序中File類的相對路徑也就是相對這個路徑的,d盤根目錄:D:\.同時 當前用戶目錄也是D:\.System.getProperty(user.dir);系統變量user.dir存放的也是這個值.

    我們可以多做幾次試驗,Example.class移動到不同路徑下,同時在那些路徑下,執行java Example命令啟動jvm,我們會發現這個當前用戶目錄是不斷變化的,它的路徑始終和我們在哪啟動jvm的路徑是一致的.

    搞清了這些,我們可以使用相對路徑來創建文件,例如:

    File file = new File(a.txt);

    File.createNewFile();

    假設jvm是在D:\下啟動的,那么a.txt就會生成在D:\a.txt;

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

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

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

    最后要說說在eclipse中的情況:

    Eclipse中啟動jvm都是在項目根路徑上啟動的.比如有個項目名為blog,其完整路徑為:D:\work\IDE\workspace\blog.那么這個路徑就是jvm的啟動路徑了.所以以上代碼如果在eclipse里運行,則輸出結果為” D:\work\IDE\workspace\blog.”

    Tomcat中的情況.

    如果在tomcat中運行web應用,此時,如果我們在某個類中使用如下代碼:

    File f = new File(“.”);

    String absolutePath = f.getAbsolutePath();

    System.out.println(absolutePath);

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

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

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

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 精品国产亚洲AV麻豆| 亚洲专区先锋影音| 丰满亚洲大尺度无码无码专线 | 亚洲成AV人片在线观看无| 中文字幕无线码中文字幕免费| 免费国产真实迷j在线观看| 亚洲AV综合色区无码一二三区| 黄瓜视频高清在线看免费下载| 中文字幕 亚洲 有码 在线| 免费能直接在线观看黄的视频 | 亚洲精品福利网泷泽萝拉| 免费无码又爽又刺激高潮视频| 亚洲欧洲日韩国产综合在线二区| 十八禁无码免费网站| 亚洲网站在线免费观看| 久草在视频免费福利| 亚洲精品成a人在线观看夫| 免费看片A级毛片免费看| 精品亚洲福利一区二区| 亚洲一区二区三区香蕉| 无码精品人妻一区二区三区免费看| 亚洲综合在线观看视频| 处破痛哭A√18成年片免费| 国产av无码专区亚洲av毛片搜| 亚洲免费一区二区| 国产高清不卡免费视频| 亚洲伊人色一综合网| 色吊丝最新永久免费观看网站| 美女羞羞视频免费网站| 久久精品国产亚洲麻豆| 免费观看无遮挡www的视频| 亚洲高清国产拍精品熟女| 亚洲精品无码永久在线观看| 久久精品免费视频观看| 美女视频黄免费亚洲| 亚洲国产成人久久笫一页| 99久久综合精品免费| www亚洲精品久久久乳| 久久亚洲免费视频| 日本免费人成视频播放 | 久久久久se色偷偷亚洲精品av|