ThreadcurrentThread()getContextClassLoader()getResource("") //获得资源文件(class文件)所在路径
ClassLoadergetSystemResource("")
Class_NameclassgetClassLoader()getResource("")
Class_Nameclass getResource("/")
Class_Nameclass getResource("") // 获得当前类所在路径
SystemgetProperty("userdir") // 获得项目根目录的绝对路径
SystemgetProperty("javaclasspath") //得到类路径和包路径
打印输出依次如下:
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/
file:/F:/work_litao/uri_test/WebContent/WEB-INF/classes/com/xml/imp/
F:\work_litao\uri_test
F:\work_litao\uri_test\WebContent\WEB-INF\classes;F:\work_litao\uri_test\WebContent\WEB-INF\lib\dom4jjar
2、 JSP中获得当前应用的相对路径和绝对路径
根目录所对应的绝对路径:requestgetRequestURI()
文件的绝对路径:applicationgetRealPath(requestgetRequestURI());
当前web应用的绝对路径 :applicationgetRealPath("/");
取得请求文件的上层目录:new File(applicationgetRealPath(requestgetRequestURI()))getParent()
java获取src目录下文件夹的相对路径问题如下:
目录结构:
project
out
src
readjava
testtxt
files
opts
项目为priject
out目录为class输出目录
src下为文件目录
src下有两个包,files、opts
想通过相对路径获取testtxt的路径
但是用反射只能获取到class,也就是out里的路径
输出后的目录不就是在out里面了,那个里面的和src里面的文件是一样的, getClass()getResource()就可以得到classpath了啊
看看设置的资源文件编译路径
找URL
关于绝对路径和相对路径:
绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如:C:xyz esttxt 代表了testtxt文件的绝对路径。>
Class类中的方法:
1、URL getResource(String name)
查找带有给定名称的资源
如果在eclipse中编写并运行
参数name为"",""时
file:/D:/JAVA%20IDE/eclipse32/work/MyTest/bin/com/hss/load/
为"/"时
file:/C:/Program%20Files/Java/jre160_04/lib/ext/classes/
2、InputStream getResourceAsStream(String name)
查找具有给定名称的资源
与1类似,只是形式不同
非常奇怪的是如果不用IDE,而只将文件放于硬盘的一处,得到的结果只是(无论是","")
file:/C:/Program%20Files/Java/jre160_04/lib/ext/classes/
ClassLoader类中的方法
1、URL getResource(String name)
查找具有给定名称的资源。
参数name为"",""时
ur1:file:/C:/Program%20Files/Java/jre160_04/lib/ext/classes/
须注意的是该classloader是系统类加载器,其他加载器也一样
2、InputStream getResourceAsStream(String name)
返回读取指定资源的输入流。
3、Enumeration<URL> getResources(String name)
查找所有给定名称的资源。
4、static URL getSystemResource(String name)
从用来加载类的搜索路径中查找具有指定名称的资源。
name只能是"",或者"",否则得到的是null
输出结果是 file:/C:/Program%20Files/Java/jre160_04/lib/ext/classes/
5、static InputStream getSystemResourceAsStream(String name)
从用来加载类的搜索路径打开具有指定名称的资源,以读取该资源。
以4相似,只是返回的是InputStream
6、static Enumeration<URL> getSystemResources(String name)
从用来加载类的搜索路径中查找所有具有指定名称的资源。
name只能是"",或者"",否则得到的是null
输出结果是 file:/C:/Program%20Files/Java/jre160_04/lib/ext/classes/,
file:/D:/JAVA%20IDE/eclipse32/work/MyTest/bin/(测试类的class文件位于此目录)
总结:一般使用Class的getResource("/")获取当前类路径(包所在的顶层目录),使用getResource("")获取当前类的具体存放路径(具体到包目录的最底层如comhssservletMyServlet时,获取的路径将是com/hss/servlet)
以上就是关于java怎么获取上传文件的路径全部的内容,包括:java怎么获取上传文件的路径、java项目根目录和类路径问题、java html file 获得file文件本地路径 要简单点的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)