`
lantian_123
  • 浏览: 1371761 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

getResourceAsStream(String name) name的路径

    博客分类:
  • Java
阅读更多

 

关于class.getResourceAsStream(String name)

class.getClassLoader().getResourceAsStream(String name)的路径name问题

 

首先用类加载资源文件的方式可以有以下三种:

(包结构图)

1)   InputStream inStream = DaoFactory.class.getResourceAsStream("dao.properties");

2)   inStream=DaoFactory.class.getResourceAsStream("/com/jdbc/dao/dao.properties")

3)   inStream=DaoFactory.class.getClassLoader().getResourceAsStream("com/jdbc/dao/dao.properties");

第一种和第二种方式是采用Class对象去加载,第三种采用ClassLoader对象去加载资源文件,之所以Class对象也可以加载资源文件是因为Class类封装的ClassLoadergetResourceAsStream方法。从Class类中的源码中可以看出:

之所以这样做无疑还是方便客户端的调用,省的每次获取ClassLoader才能加载资源文件的麻烦。

路径问题:

1.         第三种是最本质的做法,前两种也是基于第三种去实现的。JVM会使用Bootstrap Loader去加载资源文件。所以路径还是这种相对于工程的根目录即"com/jdbc/dao/dao.properties"(不需要“/)

2.         第一种是采用的相对路径,资源文件相对于当前这个类即(DaoFactory类)的位置,这种方式Class对象做了一些处理。即resloveNamename)这个方法。最终name还是会转换成适合第三方式的name参数

3.         第二种是采用绝对路径,绝对路径是相对于classpath根目录的路径(工程里src目录对应bin目录(存放.class文件的目录))。

Class类中resolveName方法)

  • 大小: 29 KB
  • 大小: 22.9 KB
  • 大小: 10.4 KB
分享到:
评论

相关推荐

    使用J2SE API读取Properties文件的六种方法

    String name = "config.properties"; InputStream in = new BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); ``` 此方法适用于处理本地文件系统中的...

    java文件路径操作详细[归类].pdf

    例如,`ClassLoader`类的`getResource(String name)`和`getResourceAsStream(String name)`方法,以及`ResourceBundle`类的`getBundle(String path)`都是基于此类路径查找资源。 然而,尽管相对路径在使用上更为...

    J2SE API读取Properties文件六种方法

    InputStream in = ClassLoaderResourceStream.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); // 关闭流 in.close(); // 获取属性值 System.out....

    读取properties文件路径的两种方式.zip

    `PropertiesReader.class.getResourceAsStream("/config.properties")`用于从类路径加载资源,注意路径名以斜杠开头,表示从根目录开始查找。 方法二:使用`java.nio.file`包 1. 如果`properties`文件位于项目文件...

    java路径解决方案

    2. **加载资源**:`getResourceAsStream(String resourcePath)`,获取指定路径的资源流,常用于读取配置文件。 3. **定位类路径**:`addClassPath(String path)`,添加新的路径到类路径,使得JVM能够找到该路径下的...

    Java读取Properties文件的六种方法

    InputStream in = ReadProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); // 示例:获取某个键的值 String value = p.getProperty("key"); ...

    Java Properties 解决中文乱码和顺序读写.docx

    - 使用`Class.getResourceAsStream(String name)`:通过类路径读取资源文件。 - 使用`ClassLoader.getResourceAsStream(String name)`:通过类加载器读取资源文件。 在处理包含中文字符的配置文件时,可能会遇到...

    API读取Properties文件的六种方法

    InputStream in = ClassLoaderResourceExample.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); // 示例:获取配置文件中的属性 String dbUrl = p....

    JAVA servlet API说明文档

    9. getResourceAsStream(String path):返回指定路径资源的输入流。 10. getRequestDispatcher(String path):返回一个RequestDispatcher对象,用于请求转发和包含。 11. getServerInfo():返回服务器的信息字符串。...

    JAVA获取CLASSPATH路径的方法详解

    2. `public InputStream getResourceAsStream(String name)`:这个方法返回一个`InputStream`,通过它可以读取类路径中指定资源的数据。`name`参数同样是以类路径根为基准的路径。 然而,在实际开发中,通常我们会...

    jsp内置对象的用法

    - `getResourceAsStream(String path)`: 返回指定资源的输入流。 - `getRequestDispatcher(String uripath)`: 返回指定资源的`RequestDispatcher`对象。 - `getServlet(String name)`: 返回指定名称的Servlet。 ...

    Spring原理模拟代码

    String methodName = "set" + name.substring(0, 1).toUpperCase() + name.substring(1); Method m = o.getClass().getMethod(methodName, beanObject.getClass().getInterfaces()[0]); m....

    ServletContext.pdf

    7. **getResourceAsStream(String path)**:返回指定资源的输入流。 #### 四、ServletContext示例代码 假设我们有一个简单的Servlet应用,我们需要将一些初始化参数存储到`ServletContext`中,并在多个Servlet之间...

    ServletContext接口

    `getResource(String path)`方法根据给定的路径返回一个`java.net.URL`对象,该路径通常以“/”开头,表示相对于当前Web应用根目录的位置。通过`getResourceAsStream(String path)`方法,可以直接读取资源的内容作为...

    Java加载properties文件的六种方法

    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); Properties p = new Properties(); p.load(in); ``` 6. **使用 `java.lang.ClassLoader` 类的 `getSystemResourceAsStream()...

    数据连接池

    String poolName = name.substring(0, name.lastIndexOf(".")); String url = props.getProperty(poolName + ".url"); if (url == null) { log("没有为连接池" + poolName + "指定URL"); continue; } String ...

    获取路径的各种方法

    String rootPath = servletContext.getRealPath("/")`:前者获取的是运行环境的工作目录,后者则是在Servlet中获取Web应用的根路径。 了解这些方法后,开发人员可以更有效地进行文件读写、资源加载和目录遍历等...

    servletcontext详解

    - **`getResourceAsStream(String path)`**:返回一个用于读取指定文件的输入流。 - **`getMimeType(String file)`**:返回给定文件的MIME类型。 ##### 5. 输出日志 - **`log(String msg)`**:向Servlet的日志文件...

    Java程序中的配置文件的存放和读取[文].pdf

    例如,我们可以获取`ConnectionPool`类的类加载器,然后根据类的包路径定位到`database.properties`,并通过`getResourceAsStream()`方法读取文件内容。伪代码如下: ```java ClassLoader loader = ConnectionPool....

Global site tag (gtag.js) - Google Analytics