记得在操作系统中了解到文件读取有两种方式,当然这在各编程语言中也是通用的,所以java路径也分,相对和绝对路径。

绝对路径

绝对路径URI ,听着和URL非常相似。那我们就来看看吧。

URI(Uniformresource Identifier)统一资源标示符.URL统一资源定位符,是一个定位器,还说明了详细怎样找到资源.所以他们就有一种抽象和继承的关系。URI抽象的说明了统一资源表示符号,而URL是详细的标识符的方式.

怎样使用呢。

如我们想获取一个类的详细位置。仅仅要例如以下方式:

比如:test.class.GetResouce("");

假设中间加了"/",test.class.GetResouce("/");获取的就是该java类的跟文件夹了。

两者是不同的。

相对路径

一般是相对于某一绝对路径的,我们常使用的是相对于ClassPath。

如:使用ClassLoader类的getResouce()等方法。得到的是当前classPath相对路径。

 URL ds=Thread.currentThread().getContextClassLoader().getResource("");
System.out.print(ds+"\n");
System.out.print(ClassLoader.getSystemResource(""));

两种结果是同样的.

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaGFuX3lhbmt1bjIwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

若要读取内容,直接使用字节流文件

InputStream in=ClassLoader.getSystemResourceAsStream(""beanx-config.xml"");

ClassLoader是类载入器,能够指定载入特殊资源.上图中为何同样呢.原因在于Thread.currentThread()设定了当前的
ClassLoader.他们都指定默认的路径.所以两者路径同样.

整体认识:

URL是一种详细的URI,它不仅唯一标识资源,并且还提供了定位该资源的信息。URI是一种语义上的抽象概念,能够是绝对的,也能够是相对的。而URL则必须提供足够的信息来定位。所以,是绝对的,而通常说的relative
URL,则是针对还有一个absolute URL,本质上还是绝对的.

Java 文件路径的读取的更多相关文章

  1. Java文件路径

    几大常用的方法 Class.getResource("")    返回的是当前Class这个类所在包开始的位置 getClassLoader().getResource(" ...

  2. 【转载】java文件路径问题及getResource和getClassLoader().getResource的区别

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u012572955/article/details/52880520我们经常在java的io操作中读 ...

  3. Maven获取resources的文件路径、读取resources的文件

    路径问题一切要看编译后的文件路径 比如,源文件路径是: 而编译后的文件路径为: 也就是说,resources文件夹下的文件在编译后,都是为根目录,这种情况下,比如我要读取resources 文件夹下的 ...

  4. java 文件及流读取

    在Java语言的IO编程中,读取文件是分两个步骤:1.将文件中的数据转换为流,2.读取流内部的数据.其中第一个步骤由系统完成,只需要创建对应的流对象即可,对象创建完成以后步骤1就完成了,第二个步骤使用 ...

  5. Java 文件路径相关

    不得不说Java的文件路径弄得很复杂, 有编译目录和resource目录什么的和解释型语言(PHP)的就是不一样 搞了好几年java一直没认真去研究这些个破路径怎么回事, 每次都忘记, 梳理一下备忘 ...

  6. C# 获取文件路径,读取项目中某程序集下文件

    获取文件路径 ------------------------------------------------------------------------- winform获取文件路径: stri ...

  7. Java文件写入与读取实例求最大子数组

    出现bug的点:输入数组无限大: 输入的整数,量大: 解决方案:向文件中输入随机数组,大小范围与量都可以控制. 源代码: import java.io.BufferedReader; import j ...

  8. java 文件按行读取

    /*代码写的可能有点累赘里面的好多东西写的不太好 还望各位大佬能提点一二,不胜感激*/package com.zzp.fileopration;import java.io.*;/** * Creat ...

  9. 在Tomcat下指定Jsp生成的Java文件路径

    在tomcat的配置文件server.xml(路径:tomcat路径\conf下面)里,找到:<Context docBase="D:/workspace/icinfo/trunk/w ...

随机推荐

  1. QEMU支持的几种常见的镜像文件格式

    qemu-img支持非常多种的文件格式,可以通过"qemu-img  -h"查看其命令帮助得到,它支持二十多种格式:blkdebug.blkverify.bochs.cloop.c ...

  2. python 2018/8/25

    # 含多空格字符串的分割 hello = "hello python hello"print(a.split(" ")) # ['hello', 'python ...

  3. 解决hibernate产生的id序列或者setXX不能同步到数据库到问题(this.hibernateTemplate.flush();hibernateTemplate.getSessionFactory().getCurrentSession().connection().commit())

    通过WarehouseInventoryPreLog warehouseInventoryPreLog = new WarehouseInventoryPreLog();产生一个id序列 如果不flu ...

  4. GitLab 安装和配置

    一.GitLab 简介 GitLab 是一个利用Ruby on Rails 开发的开源版本控制系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目. 它拥有与GitHub类 ...

  5. Idea中配置svn时报 Can't use Subversion command line client: svn.Errors found while svn working copies detection.

    https://www.cnblogs.com/wqh17/p/6881483.html

  6. Leetcode 229.求众数II

    求众数II 给定一个大小为 n 的数组,找出其中所有出现超过 ⌊ n/3 ⌋ 次的元素. 说明: 要求算法的时间复杂度为 O(n),空间复杂度为 O(1). 示例 1: 输入: [3,2,3] 输出: ...

  7. Problem 2121 神庙逃亡(FZU)

    Problem 2121 神庙逃亡 Accept: 700    Submit: 1788 Time Limit: 1000 mSec    Memory Limit : 32768 KB  Prob ...

  8. ZOJ 2588 求割边问题

    题目链接:http://vjudge.net/problem/viewProblem.action?id=14877 题目大意: 要尽可能多的烧毁桥,另外还要保证图的连通性,问哪些桥是绝对不能烧毁的 ...

  9. [luoguP3178] [HAOI2015]树上操作(dfs序 + 线段树 || 树链剖分)

    传送门 树链剖分固然可以搞. 但还有另一种做法,可以看出,增加一个节点的权值会对以它为根的整棵子树都有影响,相当于给整棵子树增加一个值. 而给以某一节点 x 为根的子树增加一个权值也会影响当前子树,节 ...

  10. 运动员最佳匹配问题(km算法)

    洛谷传送门 带权二分图最大权完美匹配. 裸的km算法. 注意开long long. #include <cstdio> #include <cstring> #include ...