我有一个问题,我想列出"默认"文件夹中的文件,这个文件夹在resources文件夹中:
-资源/语言/默认值/许多文件
第二行抛出一个nullPointerException
InputStream in = getClass().getClassLoader().getResourceAsStream("languages/default/");
BufferedReader br = new BufferedReader(new InputStreamReader(in));
我似乎不能用文件夹,只能用文件。问题是我不能使用File,因为它在一个罐子里。
编辑:这里是罐子的内容:http://www.mediafire.com/view/05u5w20xupt1mo1/javapbfolder.bmp
没有列出文件夹内容的标准方法。原因是类资源加载后面有文件系统的概念,只是资源的名称/位置。
这取决于你想做什么,如何解决这个问题。我想到了可能的解决方案:
-
从目录中的一个资源中检索URL。从URL中提取JAR文件,并通过ZipFile类打开JAR。这是"黑客行为",可能有效,也可能无效,具体取决于您运行的平台和安全设置。
-
在打包包含资源列表的JAR时生成一个索引文件。
-
在资源中放入一个JAR,然后通过ZipFile打开它。