Classloader是从classpath中读取资源的一个类,一般我们用classloader来加载class,实际上,但凡是处在classpath中的文件,我们称之为资源,都可以用classloader来读取。

在java中的API里,有两种方式来使用classpath读取资源。

引用

System.out.println(Bootstrap.class.getResource(""));

System.out.println(Bootstrap.class.getResource("/"));

System.out.println(Bootstrap.class.getClassLoader().getResource(""));

System.out.println(Bootstrap.class.getClassLoader().getResource("/"));

System.out.println(Bootstrap.class.getResource("name.properties"));

System.out.println(Bootstrap.class.getResource("/name.properties"));

System.out.println(Bootstrap.class.getClassLoader().getResource("name.properties"));

class里有一个getResource方法,classloader类里也有getResource方法,这两种API都可以从classpath中读取资源,但是也有一些区别。

class的getResource方法实际上也是用classloader来读取资源,但是起始路径不一样

引用

System.out.println(Bootstrap.class.getResource(""));

这个API的起始路径是当前类的路径,如果要正确的读到资源,目标资源必须和当前class在同一级,或子目录里,可以用相对路径读取到。

引用

System.out.println(Bootstrap.class.getResource("/"));

System.out.println(Bootstrap.class.getClassLoader().getResource(""));

加上/的读取方式,和调用classloader读取是同一个效果,这个读取代表的是某个classpath下的根路径。

引用

System.out.println(Bootstrap.class.getClassLoader().getResource("/"));

这是一种错误的读取方式,使用classloader的时候,不可以指定/来读取。

例:

引用

System.out.println(Bootstrap.class.getResource("name.properties")); System.out.println(Bootstrap.class.getResource("/name.properties")); System.out.println(Bootstrap.class.getClassLoader().getResource("name.properties") 第一种读取,代表读取当前类同一级的文件name.properties 第二种和第三种读取等效,都是读取任意classpath根路径下的name.properties文件 MARK 在启动服务的时候,所有的依赖项都是以目录的形式存在在classpath下,这样classloader才能一个一个去加载,而getResource的API里的路径,也都是相对于每一个依赖的目录的路径。 参考:http://www.tuicool.com/articles/f6bYZj       http://lionbule.iteye.com/blog/1285323

java读取文件 classpath_Java读取Classpath文件相关推荐

  1. springboot读取src下文件_springboot 下载模板文件 加载classpath文件路径(示例代码)...

    项目需要下载导入模板,springboot使用如下下载方式可解决问题: /** * 导入模板下载 * @param req * @param resp * @param context * @retu ...

  2. java打印出classpath_JAVA获取CLASSPATH路径

    ClassLoader 提供了两个方法用于从装载的类路径中取得资源:publicURL getResource (String name);publicInputStream getResourceA ...

  3. java什么是classpath_Java 基础 - CLASSPATH 到底是什么

    AjaxFormSubmit使用demo 官网:http://jquery.malsup.com/form/#download 下载地址 $("#form1").ajaxSubmi ...

  4. springboot 下载模板文件 加载classpath文件路径

    项目需要下载导入模板,springboot使用如下下载方式可解决问题: /** * 导入模板下载 * @param req * @param resp * @param context * @retu ...

  5. java文件读取异常_关于Java:从文本文件读取会引发异常

    因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...

  6. classpath和读取resources目录下的文件

    最近在springboot+maven的项目中去读取资源文件的时候,报了找不到文件的错误.由此展开了对maven项目编译前和编译后的目录结构的了解,以及对java的classpath的理解. 首先,由 ...

  7. java读取空格_java 读取文件路径空格和中文的处理

    应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案: 1, TestURL().class.getResource("&quo ...

  8. 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)

    打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...

  9. JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法

    OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行. java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库 ...

  10. 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)

    读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...

最新文章

  1. NTT DOCOMO将部署多供应商NFV技术
  2. nginx负载均衡的session共享问题的解决方法
  3. 里面如何创建新的module_硬盘分区:如何一次为新硬盘创建多个分区?
  4. SAP如何直接往系统中数据库表插入数据
  5. asp.net如何解决传递中文参数乱码问题
  6. 永福股份遭宁德时代减持3% 后者产业链投资浮盈已达80亿
  7. utility_VS2015基本操作
  8. serv-u+win2008R2+cutFtp配置
  9. 计算机键盘灯光怎么关闭,电脑关机键盘灯一直亮着解决方法
  10. LimeSDR-USB硬件部分详细解读
  11. 清明祭娭毑_原水_新浪博客
  12. Istio入坑指南(二) Istio的安装与简单的使用
  13. AR/VR软件与硬件技术
  14. 浅谈医疗卫生系统人事档案管理
  15. Word不计算封面、目录页数将正文页码修改为第几页共几页的格式
  16. iOS 直播间送礼物逻辑(礼物连击)
  17. 树莓派手动固定无线网络的IP地址
  18. filtering and hybrid images
  19. 股票技术指标atr是什么含义_股票技术指标公式详解K线图分析
  20. linux 定时关机命令

热门文章

  1. python :alpha shapes 算法检测边界点
  2. 王道数据结构代码笔记
  3. K8s(3):资源清单
  4. sonyxz2刷机教程,日版au刷欧版
  5. houdini 体积
  6. Java常用代码汇总(经典代码)
  7. (转)74系列芯片使用汇总
  8. matlab图像的直方图,Matlab图像直方图相关函数
  9. 实现局部滚动的两种方法:1.三行css代码2.使用BScroll框架
  10. Linux环境下安装SVN