java怎么读取同一个工程里面的src目录下的文件?

Python016

java怎么读取同一个工程里面的src目录下的文件?,第1张

在java中获得文件路径在我们做上传文件操作时是不可避免的。\x0d\x0a\x0d\x0aweb 上运行 \x0d\x0a1:this.getClass().getClassLoader().getResource("/").getPath()\x0d\x0athis.getClass().getClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。\x0d\x0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/\x0d\x0aSystem.getProperty("user.dir")\x0d\x0athis.getClass().getClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。\x0d\x0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war\x0d\x0a\x0d\x0a2:this.getClass().getResource("/").getPath()\x0d\x0athis.getClass().getResource("").getPath()得到的是当前类 文件的URI目录。\x0d\x0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/com/jebel/helper/\x0d\x0athis.getClass().getResource(".").getPath() X 不 能运行\x0d\x0a\x0d\x0a3:Thread.currentThread().getContextClassLoader().getResource("/").getPath()\x0d\x0aThread.currentThread().getContextClassLoader().getResource("").getPath() 得到的是 ClassPath的绝对URI路径。\x0d\x0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war/WEB-INF/classes/\x0d\x0aThread.currentThread().getContextClassLoader().getResource(".").getPath() 得到的是 项目的绝对路径。\x0d\x0a如:/D:/jboss-4.2.2.GA/server/default/deploy/hp.war\x0d\x0a\x0d\x0a在本地运行中\x0d\x0a1:this.getClass().getClassLoader().getResource("").getPath()\x0d\x0athis.getClass().getClassLoader().getResource(".").getPath() 得到的是 ClassPath的绝对URI路径。\x0d\x0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classes\x0d\x0athis.getClass().getClassLoader().getResource(".").getPath() X 不 能运行\x0d\x0a2:this.getClass().getResource("").getPath()\x0d\x0athis.getClass().getResource(".").getPath()得到的是当前类 文件的URI目录。\x0d\x0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classes/com/jebel/helper/\x0d\x0a/D:/myProjects/hp/WebRoot/WEB-INF/classes/得到的是 ClassPath的绝对URI路径。\x0d\x0a如:/D:/myProjects/hp/WebRoot/WEB-INF/classes

方式一:采用ServletContext读取,读取配置文件的realpath,然后通过文件流读取出来。因为是用ServletContext读取文件路径,所以配置文件可以放入在web-info的classes目录中,也可以在应用层级及web-info的目录中。文件存放位置具体在eclipse工程中的表现是:可以放在src下面,也可放在web-info及webroot下面等。因为是读取出路径后,用文件流进行读取的,所以可以读取任意的配置文件包括xml和properties。缺点:不能在servlet外面应用读取配置信息。

方式二:采用ResourceBundle类读取配置信息,

优点是:可以以完全限定类名的方式加载资源后,直接的读取出来,且可以在非Web应用中读取资源文件。缺点:只能加载类classes下面的资源文件且只能读取.properties文件。

方式三:采用ClassLoader方式进行读取配置信息

优点是:可以在非Web应用中读取配置资源信息,可以读取任意的资源文件信息

缺点:只能加载类classes下面的资源文件。

方法4 getResouceAsStream

XmlParserHandler.class.getResourceAsStream 与classloader不同