转载自:https://blog.csdn.net/qq_33591903/article/details/91444342

Class.getResource()与ClassLoader.getResource()的区别

Class.getResource(String name):在当前调用类的同一路径下查找该资源

ClassLoader.getResource(String name):在根目录下查找该资源文件,即"/"或classpath目录

代码示例:

首先这是我目录结构:

尝试在Main类中获取a.txt与b.txt资源

package com.sun.test;

import java.net.URL;

public class Main {

    public void testResouce() {

        //使用./a.txt与a.txt均可
URL url1 = getClass().getResource("a.txt");
System.out.println("当前类路径下使用相对路径获取a.txt :" + url1); URL url2 = getClass().getResource("/com/sun/test/a.txt");
System.out.println("当前类路径下使用绝对路径获取a.txt :" + url2); URL url3 = getClass().getResource("../../../b.txt");
System.out.println("当前类路径下使用相对路径获取b.txt :" + url3); URL url4 = getClass().getResource("/b.txt");
System.out.println("当前类路径下使用绝对路径获取b.txt :" + url4); URL url5 = getClass().getClassLoader().getResource("com/sun/test/a.txt");
System.out.println("根路径下使用相对路径获取a.txt :" + url5); //getClassLoader()已经代表根路径"/",因此无法查找到//com/sun/test/a.txt
URL url6 = getClass().getClassLoader().getResource("/com/sun/test/a.txt");
System.out.println("根路径下使用绝对路径获取a.txt :" + url6); URL url7 = getClass().getClassLoader().getResource("b.txt");
System.out.println("根路径下使用相对路径获取b.txt :" + url7); //getClassLoader()已经代表根路径"/",因此无法查找到//b.txt
URL url8 = getClass().getClassLoader().getResource("/b.txt");
System.out.println("根路径下使用绝对路径获取b.txt :" + url8); } public static void main(String[] args) {
new Main().testResouce();
}
}

输出为:

【JAVA】Class.getResource()与ClassLoader.getResource()的区别的更多相关文章

  1. Class.getResource和ClassLoader.getResource的区别分析

    原文:http://swiftlet.net/archives/868 在Java中获取资源的时候,经常用到Class.getResource和ClassLoader.getResource,本文给大 ...

  2. 关于获取资源文件,Class.getResource和ClassLoader.getResource的区别

    原文同步发表至个人博客[夜月归途] 原文链接:http://www.guitu18.com/se/java/2019-02-22/29.html 作者:夜月归途 出处:http://www.guitu ...

  3. 关于Class.getResource和ClassLoader.getResource的路径问题

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...

  4. 【转】关于Class.getResource和ClassLoader.getResource的路径问题

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...

  5. (转)关于Class.getResource和ClassLoader.getResource的路径问题

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. 1 Class.getResource(St ...

  6. Class.getResource和ClassLoader.getResource的路径写法

    Java中取资源时,经常用到Class.getResource和ClassLoader.getResource,这里来看看他们在取资源文件时候的路径问题. Class.getResource(Stri ...

  7. java Class.getResource和ClassLoader.getResource

    http://www.cnblogs.com/wang-meng/p/5574071.html http://blog.csdn.net/earbao/article/details/50009241 ...

  8. 使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

  9. 【转载】使用Class.getResource和ClassLoader.getResource方法获取文件路径

    自从转投Java阵营后,一直发下Java程序的路径读取异常麻烦,因此查阅了比较多的版本内容,整合了一份自己的学习笔记.主要使用Class及通过ClassLoader来动态获取文件路径. 查阅链接如下: ...

随机推荐

  1. vue导航条选中项样式

    html: <div id="app"> <div class="collection"> <a href="#!&qu ...

  2. java笔试之字符逆序(二)

    与字符逆序(一)不同,句子逆序,单词顺序.例如:I am a student 输出为student a am I. 想法:先字符串句子逆序,然后针对每个单词再逆序一遍. package test; i ...

  3. Java开发系列-JDBC

    概述 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和 ...

  4. LeetCode 206.反转链表(Python3)

    题目: 反转一个单链表. 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶:你可 ...

  5. 【树剖】CF916E Jamie and Tree

    好吧这其实应该不是树剖... 因为只要求子树就够了,dfs就好了 大概就是记录一个全局根root 多画几幅图会发现修改时x,y以root为根时的lca为以1为根时的lca(x,y),lca(root, ...

  6. C++ 系列:基础知识储备

    Copyright © 2000-2017, NORYES, All Rights Reserved. http://www.cnblogs.com/noryes/ ----------------- ...

  7. Making the Grade

    Making the Grade 给定长度为n的序列\(\{a_i\}\),求构造长度为n的递增序列\(\{b_i\}\),求\(\sum_{i=1}^n|a_i-b_i|\)最小值,\(1 ≤ N ...

  8. $.ajax()方法和$.get()方法使用小结

    一. 使用JQuery的$.get()方法实现异步请求 1. 编写JSP <!DOCTYPE html> <html lang="en"> <head ...

  9. Python3基础笔记_字典

    # Python3 字典 dict = {'} # 1.访问字典里的值 ,字典中没有key会报错 # 2.修改字典 print("修改之前:", dict['Beth']) dic ...

  10. 边缘节点服务ENS重磅升级 阿里云首次定义“边缘云计算”概念层层深入

    随着5G.物联网时代的到来以及云计算应用的逐渐增加,传统集中式的云计算技术已经无法满足终端侧“大连接,低时延,大带宽”的需求.结合边缘计算的概念,云计算将必然发展到下一个技术阶段,也就是将云计算的能力 ...