All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.lsn.java.common.helper.ResourceProvider Maven / Gradle / Ivy

package io.lsn.java.common.helper;

import org.apache.log4j.Logger;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

/**
 * created by tomaszw 15.01.2018 07:55
 */
public class ResourceProvider {

    private static final Logger logger = Logger.getLogger(ResourceProvider.class);

    private ResourceProvider() {
        throw new IllegalStateException("Utility class");
    }

    private static String getResourcePath(String resource) {
        if (resource.startsWith("/")) {
            return resource.substring(1);
        }
        return resource;
    }

    public static String getResourceAsString(String resource) {
        try {
            String resourceFile = getResourcePath(resource);
            URL path = ResourceProvider.class.getClassLoader().getResource(resourceFile);

            if (path == null) {
                throw new IOException("Unable to find file " + resourceFile);
            }

            StringBuilder content = new StringBuilder();
            try (BufferedReader reader = new BufferedReader(new InputStreamReader(path.openStream()))) {
                String line = reader.readLine();
                do {
                    content.append(line);
                    line = reader.readLine();
                } while (line != null);
            }
            return content.toString();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return null;
        }
    }

    public static InputStream getResourceAsStream(String resource) {
        String resourceFile = getResourcePath(resource);
        URL path = ResourceProvider.class.getClassLoader().getResource(resourceFile);

        try {
            if (path == null) {
                throw new IOException("Unable to find file " + resourceFile);
            }

            return path.openStream();
        } catch (Exception e) {
            logger.error(e.getMessage(), e);
            return null;
        }
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy