java中的路径对于一个初学者来说,可能是一件很迷糊的事情,在这里我要说一下我自己理解到的,来帮助一些初学者解惑,
大神就没必要看了,我的理解只是辅助自己记忆的,不一定是正确的。如有错误欢迎来批评指正。
说道路径不得不说一下相对路径和绝对路径:
路径: 路径就是相对于某一个参照点或者参照物的本文件所在的位置。
在不同的文件操作系统下路径的分隔符不一样。
Windows下路径的文件分隔符路径是“\”,但是请注意在Windows下的访问网站的分隔符是“/”,这样做的目的就 是区分网络路径和文件路径。使其有一个更加清晰的区别
Linux下的文件路径的分隔符是“/”,这一点请读者注意区分。
绝对路径:以根目录为参照物的,也就是说要从根目录写起。
比如:Windows下路径:c:\a\a.txt -----表示C盘下,a文件夹下的a.txt文档。
Linux下的路径:/home/a.txt ----表示根目录下(“/”表示根目录),home文件夹下的a.txt
相对路径:同样的,相对路径是以当前文件或者文件夹所在的文件夹所在的路径作为参照的,这一点不难理解。
下面将用一张图来解释一下什么是相对路径。
比如。方块代表文件夹,圆圈代表文件,当前文件位置为2,那么相对于2来找到1的位置来说怎么找呢?
那么1的位置为:../1.txt,
那么3的位置为:../../dr2/3.txt
可能有些人会对“..”有些疑惑,那么现在就解释此问题:
. :表示所在的当前目录。
.. :表示返回上一层目录
\..\ :返回上两层。
相对于某一个目录来说的。
那么是不是对路径有一个相对比较好的理解了呢。
接下来解释File文件类创建文件的时候所用的路径,一般我们用File文件类创建文件的时候都是用的相对路径,因为绝对路径是在是太繁琐了,呵呵。
File file = new File("路径");
那么相对于的路径就是java项目的工程的路径。
因为java虚拟机在new文件的时候会在java项目的工程路径下,所以自然相对于的路径就是java工程了
有一些人喜欢用InputStream is = DBUtil01.class.getClassLoader().getResourceAsStream("src下的文件");这种方式
获取输入流,但是这时候有人会问了,既然是相对于java工程的路径,为什么getResourceAsStream("src下的文件"),写的是src下的文件,难道是相对于src?没错。这是因为你是使用的类加载器来获取的文件路径,至于不动类加载器和反射的相关知识的朋友请自行百度,或者关注我以后几篇的文章,因为我会写到,这里默认大家都会了。因为类加载器加载的是.class的文件,而.class的文件是在classpath下的,而java本身就是先编译,后运行的情况,classpath所指向的源文件都存在与src下,所以类加载器也在src下生成,自然就是相对于src了。web项目的classpath就是web-info下的lib目录。所以可以直接放入lib目录就可以使用其中的类了。以上就是今天的内容,我文章中出现的 问题欢迎评论指正,或者私信我。