将jar特定路径作为字符串

时间:2014-04-25 16:40:31

标签: java jar io filereader

我的包结构如下: SRC / XXX / SRC / YYY /

我在包src / xxx /中有一个类叫它classA.java我需要获取src / yyy的路径/我该怎么做?我试过了

String s = classA.class.getResourcesAsStream("/yyy/").toString();

但它没有工作.. 我需要它作为String因为我使用该路径制作新的FileReader

2 个答案:

答案 0 :(得分:0)

我有点不清楚你正在尝试做什么。但是,如果该文件位于jar文件中,FileReader无法正常工作 - 就操作系统而言,您不会拥有文件。您应该使用getResourceAsStream,然后将InputStream包裹在InputStreamReader中。这样你也可以指定一个字符编码 - 即使我使用文件,我也会使用FileInputStreamInputStreamReader

所以你想要这样的东西:

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();
        }
    }

}
}