关于java路径的问题
来源:互联网 发布:北京柒柒网络团队骗 编辑:程序博客网 时间:2024/06/05 06:21
关于如何获取程序中文件目录的问题:
首先理解2个概念
相对路径: 是相对当前工作(也就是当前文件运行的目录)的目录,也就是class文件的目录;
如果我们在C:\ 下java 运行整个程序,那么就是相对于C盘的,如果在别的路径下运行程序,就是相当于别的路径下的路径
绝对路径:就是固定不变的路径。
如果在程序中写死,那么无论整个程序在哪里运行,都会去系统中,查找路径。(如果没有这个盘符呢?那不就gg了)
所以说我们肯定是不能通过绝对路径,来获取文件。(硬编码形式 肯定是不行的)
我们首先要通过软编码形式 获取软件运行的绝对路径+ 在加上 我们相对于软件运行的绝对路径, 从而获取相对路径,来达成效果。
/金山词霸/(相对于金山词霸的)相对路径
所以我们一般只需要获取文件相对于classpath的相对路径就好了
相对路径(相对于文件运行目录,也就是classpath路径)的获取
eclipse工具会自动把src目录下的文件拷贝到classpath目录下,所以 也是相对于src的路径。
src 也就是相当于当前项目的classpath路径。
小知识点: / 斜杠表示根目录, . 小数点表示当前路径 .. 2个小数点表示返回上层目录
获取文件相对路径的2个通用方法:
第一种方式:通过类加载器来获取文件路径 默认路径是classpath的路径(根目录)。 类加载主要是用来加载类的,也就是加载class(字节码)文件的,字节码文件都可以加载,其他文件肯定也是可以加载的。 //测试 默认路径 URL path = ClassPathTest.class.getClassLoader().getResource("."); //获取当前路径 System.out.println(path.getName()); // E:/workspace/day05/bin/ 是classpath的路径 (test1.txt文件的路径为 项目名\src\cn\java\test\test1.txt;类TestAction所在包的第一级目录位于src目录下) InputStream in = ClassPathTest.class.getClassLoader().getResourceAsStream("cn/java/test/test1.txt"); (test2.txt文件的路径为 项目名\src\test2.txt;类TestAction所在包的第一级目录位于src目录下) InputStream in = ClassPathTest.class.getClassLoader().getResourceAsStream("test2.txt"); 使用ClassLoader时需要主要,文件名不能以/ 斜杠开头, 他默认的路径就是classpath根目录,/斜杠表示根目录,重复了。第二种方式:通过类来获取文件路径 其实也是通过类加载器来获取路径的 默认路径是当前类所在的路径。 //测试 默认路径 URL path2 = ClassPathTest.class.getResource("."); //获取当前路径 System.out.println(path2.getName()); // E:/workspace/day05/bin/cn/java/test/ 是当前类所在的路径 (test1.txt文件的路径为 项目名\src\cn\java\test\test1.txt;类TestAction所在包的第一级目录位于src目录下) InputStream in = ClassPathTest.class.getResourceAsStream("test1.txt"); //直接省略包名了。 (test3.txt文件的路径为 项目名\src\cn\java\test\path\test3.txt;类TestAction所在包的第一级目录位于src目录下) CLassPathTest 这个类存在于项目名\src\cn\java\test\ 包下。 InputStream in = ClassPathTest.class.getClassLoader().getResourceAsStream(".path/test3.txt"); 使用.. 返回上层目录 只适合通过第二种方式(通过类)获取文件;第一种方式不适用。
阅读全文
0 0
- 关于java的路径问题
- 关于java路径的问题
- 关于java路径问题
- 关于java安装的环境路径问题
- 关于JAVA工程路径的问题【转】
- 关于java类的路径问题
- 关于Java Web Project的路径问题
- 关于java中获取路径的问题
- 关于路径的问题
- 关于java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- 关于Java文件路径问题
- windows平台下mysql的一些维护
- 2017.8.10 loli 测试
- 【2017/8/10】PXE+TFTP+VSftp+DHCP+Kickstart无人值守安装系统搭建
- tf之object detect安装测试
- Pie
- 关于java路径的问题
- 模仿微信朋友圈 图片浏览 js javascript 支持图片预览,滑动切换,双指缩放,图片缓存
- JS DOM 绑定的三种方法
- springboot(五)filter/interceptor/listener
- JAVA解析xml DOM SAX JDOM DOM4J
- 课工场 “微服私访”项目学习(二)
- Sqlserver2005-几种分页sql语句的比较
- java内部类
- 【JavaSE学习笔记】IO流02_字节输出流OutputStream、字节输入流InputStream