我的包结构如下: SRC / XXX / SRC / YYY /
我在包src / xxx /中有一个类叫它classA.java
我需要获取src / yyy的路径/我该怎么做?我试过了
String s = classA.class.getResourcesAsStream("/yyy/").toString();
但它没有工作..
我需要它作为String
因为我使用该路径制作新的FileReader
答案 0 :(得分:0)
我有点不清楚你正在尝试做什么。但是,如果该文件位于jar文件中,FileReader
无法正常工作 - 就操作系统而言,您不会拥有文件。您应该使用getResourceAsStream
,然后将InputStream
包裹在InputStreamReader
中。这样你也可以指定一个字符编码 - 即使我我使用文件,我也会使用FileInputStream
和InputStreamReader
。
所以你想要这样的东西:
try (Reader reader = new InputStreamReader(
ClassA.class.getResourceAsStream("foo.txt"),
StandardCharsets.UF_8)) { // Or whichever encoding is appropriate
// Read from the reader
}
答案 1 :(得分:0)
调整以下代码以使用FileReader
public class Demo
{
public static void main( String[] args ) {
ClassLoader cl = Thread.currentThread().getContextClassLoader();
InputStream is = cl.getResourceAsStream("yyy/FILENAME");
if (is != null) {
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
try {
System.out.println(reader.readLine());
}
catch(Exception ex) {
ex.printStackTrace();
}
}
}
}