摘要:最近写突然遇到配置文件加载的问题,正好有机会把关于路径的问题整理一下。普通类中加载配置文件路径以的方式来获取配置文件路径这样就得到了一个文件的路径,继而我们可以把它转化成流。
最近写mybatis 突然遇到配置文件加载的问题, 正好有机会把关于java路径的问题整理一下。在下面的情况中,可以获得文件的路径, 也可以吧文件转成流以便使用。servlet 加载配置文件路径
在servlet中有一个被称之为servlet上下文的东西, 这个东西很有意思,简单的讲这就是一个web路径的对象。例如localhost:8080/demo/index.jsp,以/demo为根路径的servlet上下文路径被发送给web应用程序,在这里servlet上下文路径就是说这个根路径,所有jsp和servlet应用都可以获得并使用这个路径, 同时,这个路径也是最常用和最应该使用的一个路径。既然这么好用就必然有获得它的一个很好的办法,
String path = this.getServletContext().getRealPath("xxx.file");
通过下面这样, 你就成功的给文件读入了文件流。
InputStream inputStream = new FileInputStream(path);
这里的getServletContext()就是获取servlet的上下文, 而getRealPath("xxx.file");则 是为了获取文件的真实路径。通过这样也就解决了Title中得获取配置文件的问题, 然而你说了,我不是在servlet中用的, 我是在POJO类中使用的, 你这个servlet很特殊,我总不能每次去建一个servlet来加载配置文件吧, 那好, 我们就进入下一个话题。
以classloader的方式来获取配置文件路径
String path = ClassName.class.getClassLoader().getResource("xxx.file").getPath();
这样就得到了一个文件的路径,继而我们可以把它转化成流。
InputStream inputStream = new FileInputStream(path);
是不是很简单呢。
用Class类加载资源文件
InputStream inputStream = ClassName.class.getResourceAsStream("/error.xml");
绝对定位,“/”开头,此时即以classpath为根目录
相对定位,不加“/”,则以调用getResourceAsStream类的包路径作为根目录(即该类所在包下获取资源)
q前面两种路径不过是冰山一角, 不过还是可以对学习起到一定的作用, java中得获取获取资源路径的范式数不胜数, 比如应用到框架时, 可以通过Resource类, 通过配置文件加载配置文件:classpath等等。但上面的两种方式却是java中最基本的两种方式。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/68234.html
摘要:中的路径问题实例分析前言关于中得路径问题,网上有很多获取的答案,我这篇文章的目的在于说明获取路径时一些不常见的概念。在实际应用中使用的比较多的就是,当前路径和配置文件的路径其他文件的路径。大气层的高度是千米高等等。 Java中的路径问题实例分析 前言:关于Java中得路径问题,网上有很多获取的答案,我这篇文章的目的在于说明获取路径时一些不常见的概念。在实际应用中使用的比较多的就是,当前...
摘要:,到现在为止一切都按部就班,执行上面的命令正常运行,读取里面的文件,并输出相应的属性。那么,如果我们想改变配置文件的内容是否需要修改源文件里的然后重新打包成呢显然这样做太麻烦也不太合理,你可以在外面配置一个新的让里的去读取。 Java中经常要用到各种配置文件xxx.properties来控制程序的运行或进行国际化等但是也常常遇到配置文件放置路径找不到的问题,这里以java.uitl.R...
摘要:文件的部分代码中获取文件的生成对象获取文件的绝对路径值使用绝对路径当使用绝对路径时,必须是以开头,这代表了当前源代码的根目录。 获取文件的绝对路径,读取该文件 一、文件目录打印图 下面的文件目录图,是项目中文件的位置信息;下面的例子是按照这个图来演示的。 . |-- java | |-- ibard | | |-- demo1 | | | `-- DemoTes...
摘要:下载安装配置环境变量以及验证是否配置成功下面这个是针对的版下载首先要选定一个版本,我这里选择,越新的版本一般会有越多的特性。有些编程语言比如会自动配置好环境变量。 首先明确自己使用的操作系统 在各个系统中的操作其实大同小异,都是以下三个步骤。下载、安装、配置环境变量(以及验证是否配置成功) 下面这个是针对Windows的 Windows版 下载JDK(java development ...
摘要:使用自建的类加载器主要是为了便于处理预编译后的字节码以及方便在模式下进行即时的热更新。 注:本系列文章所用play版本为1.2.6 在上一篇中,我们分析了play的2种启动方式,这一篇,我们来看看Play类的初始化过程 Play类 无论是Server还是ServletWrapper方式运行,在他们的入口中都会运行Play.init()来对Play类进行初始化。那在解析初始化之前,我们先...
阅读 1712·2021-11-18 13:20
阅读 1113·2021-10-11 10:59
阅读 2941·2021-08-24 10:01
阅读 3486·2019-08-29 14:21
阅读 3326·2019-08-29 14:15
阅读 3500·2019-08-26 12:23
阅读 3326·2019-08-26 11:46
阅读 3326·2019-08-26 11:35