访问java中包下的文件

时间:2016-11-03 04:29:32

标签: java package

我的包结构类似于

src
  main
    java
      com
        org
          -- Loader.java
    resources
      schemas
        -- a.schema
        -- b. schema

现在我希望能够访问schema文件夹下的模式列表,这些模式可能会随着Loader类的时间而变化。我将其打包为jar,并在运行时访问schema文件夹下的所有文件。我该怎么办?

2 个答案:

答案 0 :(得分:1)

在Loader.java中执行此操作:

InputStream in = Loader.class.getResourceAsStream("/data/schemas/a.schema");

前导斜杠表示从类路径的根开始(即您的JAR文件)。

答案 1 :(得分:0)

使用java 8,你应该很容易理解。见下面的代码:

import java.util.stream.*;
import java.nio.file.*;
import java.util.*;
import java.io.*;
public class HelloWorld{

 public static void main(String []args) throws IOException {
    try (Stream<Path> filePathStream = Files.walk(Paths.get("/data/schemas/"))) {
        List<File> filesInFolder = filePathStream.filter(Files::isRegularFile)
                            .map(Path::toFile)
                            .collect(Collectors.toList());

        System.out.println(filesInFolder);
    }

 }

}

这里的try-with-resource结构确保在使用后自动关闭流。