如何从Java中的类路径真正读取文本文件

如何从Java中的类路径真正读取文本文件,第1张

如何从Java中的类路径真正读取文本文件

在类路径上的目录中,从同一类加载器加载的类中,你应该能够使用以下任一种:

// From ClassLoader, all paths are "absolute" already - there's no context// from which they could be relative. Therefore you don't need a leading slash.InputStream in = this.getClass().getClassLoader()          .getResourceAsStream("SomeTextFile.txt");// From Class, the path is relative to the package of the class unless// you include a leading slash, so if you don't want to use the current// package, include a slash like this:InputStream in = this.getClass().getResourceAsStream("/SomeTextFile.txt");

如果这些都不起作用,则表明还有其他问题。

因此,例如,使用以下代码:

package dummy;import java.io.*;public class Test{    public static void main(String[] args)    {        InputStream stream = Test.class.getResourceAsStream("/SomeTextFile.txt");        System.out.println(stream != null);        stream = Test.class.getClassLoader().getResourceAsStream("SomeTextFile.txt");        System.out.println(stream != null);    }}

而这个目录结构:

pre    dummy          Test.classtxt    SomeTextFile.txt

然后(使用Linux机器上的Unix路径分隔符):

java -classpath pre:txt dummy.Test

结果:

truetrue


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/4904433.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存