java 读取类路径文件,如何从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);

}

}

而这个目录结构:

code

dummy

Test.class

txt

SomeTextFile.txt

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

java -classpath code:txt dummy.Test

结果:

true

true

2020-02-25

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值