Java里文件路径的诸多问题

要注意../的意思是上一级,比如有test文件夹,下有tec和com文件夹,当前运行类在com中,要读取tec中的一个文件,路径可以写成../(当前运行类所在文件夹com的路径向上一级,到了test文件夹)tec/(这里就是在../影响下到了test文件夹,后面的tec文件夹)/文件的名字

import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;

public class test1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    // 第一种:获取类加载的根路径   D:\git\daotie\daotie\target\classes
    test1 muDemo = new test1();
    try {

        muDemo.showURL();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

public void showURL() throws IOException {

    String FileName="../tec/DBConfig.property";
    
    Properties prop= new Properties();
    InputStream is=getClass().getResourceAsStream(FileName);
    prop.load(is);
    if(is!=null)
        
        System.out.println(prop.getProperty("MySQLDriver")+"123");
        //is.close(); 
    else 
        System.out.println(is.read()+"123");
    
    // 第一种:获取类加载的根路径   D:\git\daotie\daotie\target\classes
    File f = new File(this.getClass().getResource("/").getPath());
    System.out.println(f);

    // 获取当前类的所在工程路径; 如果不加“/”  获取当前类的加载目录  D:\git\daotie\daotie\target\classes\my
    File f2 = new File(this.getClass().getResource("").getPath());
    System.out.println(f2);

    // 第二种:获取项目路径    D:\git\daotie\daotie
    File directory = new File("");// 参数为空
    String courseFile = directory.getCanonicalPath();
    System.out.println(courseFile);

    // 第三种:  file:/D:/git/daotie/daotie/target/classes/
    URL xmlpath = this.getClass().getClassLoader().getResource("");
    System.out.println(xmlpath);

    // 第四种: D:\git\daotie\daotie
    System.out.println(System.getProperty("user.dir"));
    /*
     * 结果: C:\Documents and Settings\Administrator\workspace\projectName
     * 获取当前工程路径
     */

    // 第五种:  获取所有的类路径 包括jar包的路径
    System.out.println(System.getProperty("java.class.path"));
}

}


扫描二维码,在手机上阅读!

发表评论

电子邮件地址不会被公开。 必填项已用*标注