A resource abstraction is implemented in Java because a resource could be:
- in the file system,
- on any place on the classpath
- in a jar file
- or otherwise
- relative path: They are the default (Resource paths are relative to the location of the class file)
- absolute path: Use the a slash in your path. It's the 'root' of your resource project
InputStream inputStream = MyClass.class.getResourceAsStream("/myDir/myResource.txt"); // Note that ''getResourceAsStream'' will the load the ''ZipFileSystem''
You can then transform it as a string.
Scanner s = new Scanner(inputStream).useDelimiter("\\A"); String result = s.hasNext() ? s.next() : "";
From Maven, the root is src/resources in test but also in main.
The first backslash is important.
From Maven, the root is src/resources in test but also in main. Just put your resource in this directory to avoid problem.
The relative path would only work if the resources are packaged in that class's JAR file because it will create a path as: mypackage/path/ResourceName