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

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

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

    hengheng123456789

      BlogJava :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
      297 Posts :: 68 Stories :: 144 Comments :: 0 Trackbacks
    轉(zhuǎn)自:http://blog.csdn.net/soleghost/archive/2006/04/27/679374.aspx

    1.如何獲得當(dāng)前文件路徑

    常用:

    字符串類型:System.getProperty("user.dir");

    綜合:

    package com.zcjl.test.base;
    import java.io.File;
    public class Test {
        public static void main(String[] args) throws Exception {
            System.out.println(
                Thread.currentThread().getContextClassLoader().getResource(""));
            System.out.println(Test.class.getClassLoader().getResource(""));
            System.out.println(ClassLoader.getSystemResource(""));

            System.out.println(Test.class.getResource(""));
            System.out.println(Test.class.getResource("/"));


            System.out.println(new File("").getAbsolutePath());
            System.out.println(System.getProperty("user.dir"));

        }
    }

    file:/E:/workSpace/javaTest/target/classes/
    file:/E:/workSpace/javaTest/target/classes/
    file:/E:/workSpace/javaTest/target/classes/
    file:/E:/workSpace/javaTest/target/classes/javaAPI/
    file:/E:/workSpace/javaTest/target/classes/
    E:\workSpace\javaTest
    E:\workSpace\javaTest

     

    2.Web服務(wù)中

    (1).Weblogic

    WebApplication的系統(tǒng)文件根目錄是你的weblogic安裝所在根目錄。
    例如:如果你的weblogic安裝在c:\bea\weblogic700.....
    那么,你的文件根路徑就是c:\.
    所以,有兩種方式能夠讓你訪問你的服務(wù)器端的文件:
    a.使用絕對路徑:
    比如將你的參數(shù)文件放在c:\yourconfig\yourconf.properties,
    直接使用 new FileInputStream("/yourconfig/yourconf.properties");
    b.使用相對路徑:
    相對路徑的根目錄就是你的webapplication的根路徑,即WEB-INF的上一級目錄,將你的參數(shù)文件放在yourwebapp\yourconfig\yourconf.properties,
    這樣使用:
    new FileInputStream("yourconfig/yourconf.properties");
    這兩種方式均可,自己選擇。

    (2).Tomcat

    在類中輸出System.getProperty("user.dir");顯示的是%Tomcat_Home%/bin

    (3).Resin

    不是你的JSP放的相對路徑,是JSP引擎執(zhí)行這個JSP編譯成SERVLET
    的路徑為根.比如用新建文件法測試File f = new File("a.htm");
    這個a.htm在resin的安裝目錄下

    (4).如何讀相對路徑哪?

    在Java文件中g(shù)etResource或getResourceAsStream均可

    例:getClass().getResourceAsStream(filePath);//filePath可以是"/filename",這里的/代表web發(fā)布根路徑下WEB-INF/classes

    也可以getClass().getClassLoader().getResourceAsStream(filePath)//filePath不是帶“/”的

    (5).獲得文件真實路徑

    string  file_real_path=request.getRealPath("mypath/filename"); 

    通常使用request.getRealPath("/"); 

     4.遺留問題

    目前new FileInputStream()只會使用絕對路徑,相對


      InputStream in1 = new FileInputStream("abc1.properties"); // 相對路徑
      InputStream in2 = new FileInputStream("/abc2.properties"); // 絕對路徑,E盤下
      InputStream in3 = new FileInputStream("e://abc3.properties"); //相對路徑

    5.按Java文件類型分類讀取配置文件

    配 置文件是應(yīng)用系統(tǒng)中不可缺少的,可以增加程序的靈活性。java.util.Properties是從jdk1.2就有的類,一直到現(xiàn)在都支持load ()方法,jdk1.4以后save(output,string) ->store(output,string)。如果只是單純的讀,根本不存在煩惱的問題。web層可以通過 Thread.currentThread().getContextClassLoader().
    getResourceAsStream("xx.properties") 獲取;

    Application可以通過new FileInputStream("xx.properties");直接在classes一級獲取。關(guān)鍵是有時我們需要通過web修改配置文件,我們不 能將路徑寫死了。經(jīng)過測試覺得有以下心得:

    1.servlet中讀寫。如果運用Struts 或者Servlet可以直接在初始化參數(shù)中配置,調(diào)用時根據(jù)servlet的getRealPath("/")獲取真實路徑,再根據(jù)String file = this.servlet.getInitParameter("abc");獲取相對的WEB-INF的相對路徑。
    例:
    InputStream input = Thread.currentThread().getContextClassLoader().
    getResourceAsStream("abc.properties");
    Properties prop = new Properties();
    prop.load(input);
    input.close();
    OutputStream out = new FileOutputStream(path);
    prop.setProperty("abc", “test");
    prop.store(out, “–test–");
    out.close();

    2.直接在jsp中操作,通過jsp內(nèi)置對象獲取可操作的絕對地址。
    例:
    // jsp頁面
    String path = pageContext.getServletContext().getRealPath("/");
    String realPath = path+"/WEB-INF/classes/abc.properties";

    //java 程序
    InputStream in = getClass().getClassLoader().getResourceAsStream("abc.properties"); // abc.properties放在webroot/WEB-INF/classes/目錄下
    prop.load(in);
    in.close();

    OutputStream out = new FileOutputStream(path); // path為通過頁面?zhèn)魅氲穆窂?br>prop.setProperty("abc", “abcccccc");
    prop.store(out, “–test–");
    out.close();

    3.只通過Java程序操作資源文件
    InputStream in = new FileInputStream("abc.properties"); // 相對路徑,項目下的路徑

    OutputStream out = new FileOutputStream("abc.properties");



    System.getProperty()參數(shù)大全
    查資料用:
    java.version Java Runtime Environment version
    java.vendor Java Runtime Environment vendor
    java.vendor.url Java vendor URL
    java.home Java installation directory
    java.vm.specification.version Java Virtual Machine specification version
    java.vm.specification.vendor Java Virtual Machine specification vendor
    java.vm.specification.name Java Virtual Machine specification name
    java.vm.version Java Virtual Machine implementation version
    java.vm.vendor Java Virtual Machine implementation vendor
    java.vm.name Java Virtual Machine implementation name
    java.specification.version Java Runtime Environment specification version
    java.specification.vendor Java Runtime Environment specification vendor
    java.specification.name Java Runtime Environment specification name
    java.class.version Java class format version number
    java.class.path Java class path
    java.library.path List of paths to search when loading libraries
    java.io.tmpdir Default temp file path
    java.compiler Name of JIT compiler to use
    java.ext.dirs Path of extension directory or directories
    os.name Operating system name
    os.arch Operating system architecture
    os.version Operating system version
    file.separator File separator ("/" on UNIX) path.separator Path separator (":" on UNIX)
    line.separator Line separator ("\n" on UNIX)
    user.name User's account name
    user.home User's home directory
    user.dir User's current working directory
    posted on 2006-12-29 16:41 哼哼 閱讀(4143) 評論(2)  編輯  收藏 所屬分類: JAVA-Common

    Feedback

    # re: 關(guān)于Java文件路徑問題(轉(zhuǎn)) 2007-12-19 21:49 ip反查域名
    說的并不全面吧.
    比如:
    user.dir: 如果是tomcat6以前版本,并且啟動的是服務(wù):結(jié)果是{system32} 如果是直接運行的是tcomat的話. ....

    太煩了,不寫了  回復(fù)  更多評論
      

    # re: 關(guān)于Java文件路徑問題(轉(zhuǎn)) 2007-12-19 22:04 ip反查域名

    http://www.chinasolaris.org/mietian/7121543.html  回復(fù)  更多評論
      

    主站蜘蛛池模板: 国产L精品国产亚洲区久久| 无码欧精品亚洲日韩一区| 国产精品高清免费网站| 1区1区3区4区产品亚洲| 成年在线网站免费观看无广告| 产传媒61国产免费| 亚洲精品国产肉丝袜久久| 国产成人无码区免费A∨视频网站 国产成人涩涩涩视频在线观看免费 | 国产亚洲人成网站观看| 男女做羞羞的事视频免费观看无遮挡| 国产精品亚洲一区二区无码 | 亚洲狠狠综合久久| 日韩a级毛片免费观看| a级毛片无码免费真人久久| 亚洲AV日韩综合一区尤物| 国产亚洲人成无码网在线观看| 成年女人18级毛片毛片免费观看| 在线看片免费人成视频久网下载| 久久久久久亚洲精品影院| 国产亚洲福利精品一区| 国产美女a做受大片免费| 99精品视频免费观看| 日本精品久久久久久久久免费 | 亚洲国产人成中文幕一级二级| 亚洲国产精品免费视频| 国产成人亚洲精品电影| 亚洲黄色三级视频| 最新精品亚洲成a人在线观看| 成年女人午夜毛片免费视频| 日本视频在线观看永久免费| 小说专区亚洲春色校园| 亚洲理论片在线观看| 在线观看午夜亚洲一区| 国产无遮挡色视频免费视频| 国产大片线上免费观看| 久久大香伊焦在人线免费| 伊人久久国产免费观看视频| 亚洲一线产区二线产区区| 色婷婷亚洲十月十月色天| 国产亚洲精品无码专区| 在线a亚洲v天堂网2018|