黑马程序员技术交流社区

标题: 关于目录的写法 [打印本页]

作者: 会飞的狼    时间: 2013-8-13 21:37
标题: 关于目录的写法
InputStream ips = ReflectText.class.getResourceAsStream("/com/itheima/resource/config.properties");//看了视频张老师是这么写的,怎么只用一个/就可以了以前不是两个\\分割目录吗?

作者: 吃阁子的猫    时间: 2013-8-15 16:11
这2个都可以用做分割文件,区别就是/是跨平台的,任何系统都可以用,而\\不是跨平台的,在有些系统中不能被识别
作者: sunriselzz    时间: 2013-8-15 16:32
"/"与"\"还有"\\"  在不同的系统中都可以用作文件路径分隔符
/ : 是unix,或者linux系统下得文件路径表示     \:是windox系统下得
\\:  这个在window下,用在java中相当于  \\==/    \\代表 \代表转义字符

标准的用法是 '/ ',   在具体的FileSystem上,会把这个符号替换成本地的separator,  
而直接写 '\ '只可能用在windows系统下
File.separator:   String   "/ "(unix)   or   "\ "(windows)
File.separatorChar   :   同上   char   '/ ',   '\ '
File.pathSeparator   :   String,   一系列path之间的分隔符,   ": "unix   "; "windows
File.pathSeparatorChar

还有  .  和  ..
.  代表当前目录    ..  代表当前目录的上级目录
举例:
在F:/A/B/C下
那么 ../C就是 F:/A/B
那么 ../B就是 F:/A
./C或者C就是 F:/A/B/C
/C 是指 F:/C

平时写程序的时候,很多时候提示文件找不到,而抛出了异常,现在整理如下

一 相对路径的获得
    说明:相对路径(即不写明时候到底相对谁)均可通过以下方式获得
  (不论是一般的java项目还是web项目)
         String relativelyPath=System.getProperty("user.dir");
         上述相对路径中,java项目中的文件是相对于项目的根目录
         web项目中的文件路径视不同的web服务器不同而不同(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中的方法类似,不同的是此方法必须以'/'开头)
             InputStream is=Test1.class.getResourceAsStream("/test.txt");
                     (test.txt文件的路径为  项目名\src\test.txt,类Test1所在包的第一级目录位于src目录下)  







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2