java读取文件 classpath_Java读取Classpath文件
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文件相关推荐
- springboot读取src下文件_springboot 下载模板文件 加载classpath文件路径(示例代码)...
项目需要下载导入模板,springboot使用如下下载方式可解决问题: /** * 导入模板下载 * @param req * @param resp * @param context * @retu ...
- java打印出classpath_JAVA获取CLASSPATH路径
ClassLoader 提供了两个方法用于从装载的类路径中取得资源:publicURL getResource (String name);publicInputStream getResourceA ...
- java什么是classpath_Java 基础 - CLASSPATH 到底是什么
AjaxFormSubmit使用demo 官网:http://jquery.malsup.com/form/#download 下载地址 $("#form1").ajaxSubmi ...
- springboot 下载模板文件 加载classpath文件路径
项目需要下载导入模板,springboot使用如下下载方式可解决问题: /** * 导入模板下载 * @param req * @param resp * @param context * @retu ...
- java文件读取异常_关于Java:从文本文件读取会引发异常
因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...
- classpath和读取resources目录下的文件
最近在springboot+maven的项目中去读取资源文件的时候,报了找不到文件的错误.由此展开了对maven项目编译前和编译后的目录结构的了解,以及对java的classpath的理解. 首先,由 ...
- java读取空格_java 读取文件路径空格和中文的处理
应用部署时,发生文件读取错误,发现是部署路径中含有空格的文件夹名,然后把应用服务器位置迁移了. 从网上找到如下方案: 1, TestURL().class.getResource("&quo ...
- 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)
打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...
- JAVA读取WORD,EXCEL,POWERPOINT,PDF文件的方法
OFFICE文档使用POI控件,PDF可以使用PDFBOX0.7.3控件,完全支持中文,用XPDF也行. java2word 是一个在java程序中调用 MS Office Word 文档的组件(类库 ...
- 读取Java文件到byte数组的三种方式及Java文件操作大全(包括文件加密,String加密)
读取Java文件到byte数组的三种方式 package zs;import java.io.BufferedInputStream; import java.io.ByteArrayOutputSt ...
最新文章
- NTT DOCOMO将部署多供应商NFV技术
- nginx负载均衡的session共享问题的解决方法
- 里面如何创建新的module_硬盘分区:如何一次为新硬盘创建多个分区?
- SAP如何直接往系统中数据库表插入数据
- asp.net如何解决传递中文参数乱码问题
- 永福股份遭宁德时代减持3% 后者产业链投资浮盈已达80亿
- utility_VS2015基本操作
- serv-u+win2008R2+cutFtp配置
- 计算机键盘灯光怎么关闭,电脑关机键盘灯一直亮着解决方法
- LimeSDR-USB硬件部分详细解读
- 清明祭娭毑_原水_新浪博客
- Istio入坑指南(二) Istio的安装与简单的使用
- AR/VR软件与硬件技术
- 浅谈医疗卫生系统人事档案管理
- Word不计算封面、目录页数将正文页码修改为第几页共几页的格式
- iOS 直播间送礼物逻辑(礼物连击)
- 树莓派手动固定无线网络的IP地址
- filtering and hybrid images
- 股票技术指标atr是什么含义_股票技术指标公式详解K线图分析
- linux 定时关机命令