有没有办法读取包内的文本文件。 假设我想访问名为“myTextFile.txt”的文件,该文件位于名为“a”的包中。
我想从名为“MyClass”的类中访问它,该类位于同一个包中。
什么是“myTextFile.txt”的路径?我是否可以像这样使用bufferedreader:BufferedReader in = new BufferedReader(new FileReader(PATH));
答案 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)
只需输入绝对文件路径即可。即您的本地机器路径。应该管用。