Wednesday, March 4, 2020

How to load file(s) in the same directory

The code below demonstrates how to load file(s), eg configuration, properties in the same directory with the jar file or the running class file.


try {
    File jarLoc = new File(
                        MyClass.class.getProtectionDomain()
                        .getCodeSource().getLocation().toURI().getPath());

    if(!jarLoc.isDirectory()) {
        // if this is a jar file, the full path with jar name returned. 
        currentPath = jarLoc.getParentFile().getPath();
    } else {
        // if this is a class file, full path until the parent directory
        currentPath = jarLoc.getPath();
    }

    String pathToFile = "currentPath + fileName.fileExtension";

} catch (URISyntaxException e) {
    e.printStackTrace();
}


The code below demonstrates how to load file's content in the jar file or in the classpath.

        InputStream in = getClass().getResourceAsStream(path);
        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
        String line = null;
        String content = "";
        while ((line = reader.readLine()) != null) {
            content += line;
        }

OR

new String(Files.readAllBytes(Paths.get(path)))




Done!!

No comments:

Post a Comment

LinkWithin

Related Posts Plugin for WordPress, Blogger...