【发布时间】:2014-06-24 18:50:00
【问题描述】:
谁能告诉我MyClass.class.getClassLoader().getResourceAsStream("TestFile.txt")和MyClass.class.getResourceAsStream("TestFile.txt")有什么区别
【问题讨论】:
标签: java class resources classloader
谁能告诉我MyClass.class.getClassLoader().getResourceAsStream("TestFile.txt")和MyClass.class.getResourceAsStream("TestFile.txt")有什么区别
【问题讨论】:
标签: java class resources classloader
它们(或多或少)是等价的。 Class#getResourceAsStream() 将在内部获取 ClassLoader 并将 getResourceAsStream 调用委托给它。
感谢VGR's comments。重要的是要注意Class#getResourceAsStream(String) 首先委托给Class#getResource(String),如果它不以/ 开头,则通过在相应类的包名前面加上@987654329 来转换传递的String 参数@替换每个.。
【讨论】:
"/TestFile.txt",要么第一个必须通过MyClass.class.getPackage().getName().replace('.', '/') + "/TestFile.txt"。