0

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

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

4

6 回答 6

0

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

于 2012-10-28T00:43:44.337 回答
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");

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

然后你可以做

new BufferedReader(new InputStreamReader(in));
于 2012-10-28T00:39:16.163 回答
0

InputStream is = new BufferedInputStream(getClass().getClassLoader().getResourceAsStream("/a/myTextFile.txt"));

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

于 2012-10-28T00:39:40.620 回答
0

你的项目编译到哪里?任何路径都将相对于程序的位置,或者如果您指定,则为完整路径,而不是类。一旦你得到那条路,你就可以把它放在哪里PATH

但是,您有什么理由将该文件放入一个包中?它不应该放在某种资源目录中吗?

于 2012-10-28T00:40:07.887 回答
0

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

于 2012-10-28T00:41:57.933 回答
-1

只需输入绝对文件路径。即你的煤机路径。应该管用。

于 2014-09-10T20:05:33.277 回答