平时敲代码的时候,非常多时候提示文件找不到,而抛出了异常,如今整理例如以下



一 相对路径的获得

说明:相对路径(即不写明时候究竟相对谁)均可通过下面方式获得(不论是一般的java项目还是web项目)

String relativelyPath=System.getProperty("user.dir");

上述相对路径中,java项目中的文件是相对于项目的根文件夹

web项目中的文件路径视不同的webserver不同而不同(tomcat是相对于 tomcat安装文件夹\bin)





二 类载入文件夹的获得(即当执行时某一类时获得其装载文件夹)

1.1)通用的方法一(不论是一般的java项目还是web项目,先定位到能看到包路径的第一级文件夹)





InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");

(test.txt文件的路径为 项目名\src\test.txt;类TestAction所在包的第一级文件夹位于src文件夹下)





上式中将TestAction。test.txt替换成相应成相应的类名和文件名称字就可以





1.2)通用方法二 (此方法和1.1中的方法类似,不同的是此方法必须以'/'开头,參考http://riddickbryant.javaeye.com/blog/436693)

InputStream is=Test1.class.getResourceAsStream("/test.txt");

(test.txt文件的路径为 项目名\src\test.txt,类Test1所在包的第一级文件夹位于src文件夹下)





三 web项目根文件夹的获得(公布之后)

1 从servlet出发



可建立一个servlet在其的init方法中写入例如以下语句

ServletContext s1=this.getServletContext();

String temp=s1.getRealPath("/"); (关键)

结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\ (002_ext为项目名字)





假设是调用了s1.getRealPath("")则输出D:\工具\Tomcat-6.0\webapps\002_ext(少了一个"\")





2 从httpServletRequest出发





String cp11111=request.getSession().getServletContext().getRealPath("/");





结果形如:D:\工具\Tomcat-6.0\webapps\002_ext\





四 classpath的获取(在Eclipse中为获得src或者classes文件夹的路径)



方法一 Thread.currentThread().getContextClassLoader().getResource("").getPath()





eg: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();

System.out.println("t---"+t);





输出:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/





方法二 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse为src某一个包中的类,下同)





eg:String p1=JdomParse.class.getClassLoader().getResource("").getPath();

System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);





输出: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/





 





另外,假设想把文件放在某一包中,则能够 通过下面方式获得到文件(先定位到该包的最后一级文件夹)





eg String p2=JdomParse.class.getResource("").getPath();

System.out.println("JdomParse.class.getResource---"+p2);





输出: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse为src文件夹下jdom包中的类)





四 属性文件的读取:





方法 一





InputStream in = lnew BufferedInputStream( new FileInputStream(name));    Properties p = new Properties();   p.load(in);







注意路径的问题,做运行之后就能够调用p.getProperty("name")得到相应属性的值



方法二



Locale locale = Locale.getDefault();

ResourceBundle localResource = ResourceBundle.getBundle("test/propertiesTest", locale);

String value = localResource.getString("test");

System.out.println("ResourceBundle: " + value);

projectsrc文件夹下propertiesTest.properties(名字后缀必须为properties)文件内容例如以下:

test=hello word

欢迎增加qq交流群:398918539

Java获取项目路径下的方法(全)的更多相关文章

  1. java 获取某路径下的子文件/子路径

    /** * 获取某路径下的子文件 * */ public static List<String> getSubFile(String path){ List<String> s ...

  2. java获取类路径下文件的绝对路径

    获取文件绝对路径 在idea中,默认的当前路径是project的根路径,如果你使用idea的默认路径,只要离开idea换到其他位置,可能当前路径就不是project的根路径了. 使用一下通用方式的前提 ...

  3. JAVA获取项目工程下的文件

    JAVA获取 工程下的文件  其实很简单主要是理解编译路径  ①class.getResource public static void main(String[] args) { WordTest ...

  4. java获取项目路径,url路径

    我的web项目名iamgeModel. 工作空间在D盘 先获取url相关: 需要是HttpServletRequest request; 获取IP: request.getServerName() / ...

  5. java获取指定路径下的指定文件/java.io.File.listFiles(FilenameFilter filter)

    java.io.File.listFiles(FilenameFilter filter) 返回抽象路径名数组,表示在目录中此抽象路径名表示,满足指定过滤器的文件和目录. 声明 以下是java.io. ...

  6. Java获取一个路径下指定后缀名的所有文件

    方法一: http://blog.csdn.net/zjx102938/article/details/8114114 import java.io.File; import java.util.Ar ...

  7. java读取项目路径下的中文文件乱码问题

    出现乱码错误: 处理方案: 对文件路径中存在中文的,都要进行URLDecoder.decode(path,"UTF-8")编码转换 wordContent = URLEncoder ...

  8. Java获取项目路径

    参考博客.自己就不写了.我觉得他写得很详细 http://blog.csdn.net/hpf911/article/details/5852127

  9. java获取类加载路径和项目根路径的5种方法

    // 第一种:获取类加载的根路径 D:\IDEAWorkspace\hs-bluetooth-lock\src\applications\bluetooth-api\target\classes Fi ...

随机推荐

  1. VC与JavaScript交互(一) ———— 怎样实现

    为什么要让VC与JavaScript交互? 1.有时候我们须要让自己的软件打开一个网页.来获取页面上的一些数据. 这时,能够用mshtml解析HTML提取出数据.也能够向HTML文档动态写入我们准备好 ...

  2. nginx报 File not found 错误

    原因可能非常多,但对于刚開始学习的人.大部分应该是/etc/nginx/conf.d/default.conf里面的php解析部分配置不正确. 解决的话就是把root定义.在server下加上,这样r ...

  3. DB-MySQL:MySQL 处理重复数据

    ylbtech-DB-MySQL:MySQL 处理重复数据 1.返回顶部 1. MySQL 处理重复数据 有些 MySQL 数据表中可能存在重复的记录,有些情况我们允许重复数据的存在,但有时候我们也需 ...

  4. linux + nginx 的配置优化

    linux 关于TCP/IP 的优化配置  配置文件/etc/sysctl.conf    修改完文件生效的命令  /sbin/sysctl -p 如下是总结的配置内容及说明 net.ipv4.con ...

  5. HDU4920 矩阵乘法

    嗯嗯 就算是水题吧. (缩完行就15行) 题意:两个n*n的矩阵相乘(n<=800),结果对3取模 思路:先对3取模,所以两个矩阵里面会出现很多0,所以可以先枚举一个矩阵,只有当该位置不是0的时 ...

  6. PHP配置优化:php-fpm配置解读

    PHP-FPM是一个PHP FastCGI管理器,php-fpm.conf配置文件用于控制PHP-FPM管理进程的相关参数,比如工作子进程的数量.运行权限.监听端口.慢请求等等. 我们在编译安装PHP ...

  7. java同步锁的正确使用

    同步锁分类 对象锁(this) 类锁(类的字节码文件对象即类名.class) 字符串锁(比较特别) 应用场景 在多线程下对共享资源的安全操作. 需求:启动5个线程对共享资源total进行安全操作. 同 ...

  8. iOS-Core-Animation-Advanced-Techniques/12-性能调优/性能调优.md

    性能调优 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...

  9. 照片放大软件PhotoZoom怎么用?

    做设计时,难免常常要上网找一些图片素材,但是有时候我们找到图片效果不尽人意,图片风格符合设计要求的的却图片太小,用photoshop放大后,图片的色块像素就出来了,效果极为不理想,这就要我们将图片进行 ...

  10. html5+css3相关知识

    一:HTML5 1.html中的meta标签 定义针对搜索引擎的关键词: <meta name="keywords" content="HTML, CSS, XML ...