包内文件的路径

时间:2012-10-28 00:33:48

标签: java path package text-files bufferedreader

有没有办法读取包内的文本文件。 假设我想访问名为“myTextFile.txt”的文件,该文件位于名为“a”的包中。

我想从名为“MyClass”的类中访问它,该类位于同一个包中。 什么是“myTextFile.txt”的路径?我是否可以像这样使用bufferedreader:BufferedReader in = new BufferedReader(new FileReader(PATH));

6 个答案:

答案 0 :(得分:0)

听起来您需要使用Class.getResource()ClassLoader.getResource()方法之一:

URL url = MyClass.class.getResource("myTextFile.txt"); 
URL url = MyClass.class.getClassLoader().getResource("myTextFile.txt");

InputStream in = MyClass.class.getResourceAsStream("myTextFile.txt"); 
InputStream in = MyClass.class.getClassLoader().getResourceAsStream("myTextFile.txt");

请参阅this question进行比较,以及绝对路径与相对路径的解释。

然后你可以做

new BufferedReader(new InputStreamReader(in));

答案 1 :(得分:0)

InputStream is = new BufferedInputStream( 的getClass()。 getClassLoader()。 的getResourceAsStream( “/一个/ myTextFile.txt”));

应该做的伎俩。请注意arg的结构,包的根用“/”表示,你的包(即目录)也是如此

答案 2 :(得分:0)

您的项目编译到哪里?任何路径都是相对于程序的位置,或者是指定的完整路径,而不是类。获得该路径后,您可以将其放在PATH所在的位置。

但是,您是否有任何理由将该文件放入包中?它不应该进入某种资源目录吗?

答案 3 :(得分:0)

Class上的GetResource效果很好。 Spring中的ResourceLocator也是一个非常灵活的选项。

答案 4 :(得分:0)

您可以通过ClassLoader.getResourceAsStream()(或getResource())获取资源。也可以通过Class.getResourceAsStream()(而不是ClassLoader)访问它们。您可以使用相对或绝对名称(以/).

开头

答案 5 :(得分:-1)

只需输入绝对文件路径即可。即您的本地机器路径。应该管用。