【问题标题】:Difference between methods to getResourceAsStreamgetResourceAsStream 方法之间的区别
【发布时间】:2014-06-24 18:50:00
【问题描述】:

谁能告诉我MyClass.class.getClassLoader().getResourceAsStream("TestFile.txt")MyClass.class.getResourceAsStream("TestFile.txt")有什么区别

【问题讨论】:

    标签: java class resources classloader


    【解决方案1】:

    它们(或多或少)是等价的。 Class#getResourceAsStream() 将在内部获取 ClassLoader 并将 getResourceAsStream 调用委托给它。

    感谢VGR's comments。重要的是要注意Class#getResourceAsStream(String) 首先委托给Class#getResource(String),如果它不以/ 开头,则通过在相应类的包名前面加上@987654329 来转换传递的String 参数@替换每个.

    【讨论】:

    • 可能应该提到,Vwin 的问题中的两个调用并不相同。为了使它们功能相同,要么第二个必须通过"/TestFile.txt",要么第一个必须通过MyClass.class.getPackage().getName().replace('.', '/') + "/TestFile.txt"
    猜你喜欢
    • 2020-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2014-11-07
    • 2011-02-02
    • 1970-01-01
    相关资源
    最近更新 更多