zoukankan      html  css  js  c++  java
  • 配置相关的一些辅助类

    package com.opslab.util;

    import org.apache.log4j.Logger;

    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URL;
    import java.util.List;
    import java.util.Properties;

    /**
    * 配置相关的一些辅助类
    */
    public class ConfigUtil {

    private static Logger logger = Logger.getLogger(ConfigUtil.class);

    /**
    * 获取配置文件资源
    *
    * @return
    */
    public static URL findAsResource(final String path) {
    URL url = null;

    ClassLoader contextClassLoader = ClassUtil.getContextClassLoader();
    if (contextClassLoader != null) {
    url = contextClassLoader.getResource(path);
    }
    if (url != null)
    return url;

    url = ConfigUtil.class.getClassLoader().getResource(path);
    if (url != null)
    return url;

    url = ClassLoader.getSystemClassLoader().getResource(path);

    return url;
    }

    /**
    * @param path
    * @return
    */
    public static String resourcePath(final String path) {
    URL asResource = findAsResource(path);
    return new File(asResource.getFile()).getPath();
    }


    private static InputStream getConfigStream(final String path) throws RuntimeException {
    try {
    URL url = new URL(path);
    return url.openStream();
    } catch (IOException e) {
    throw new RuntimeException("Unable to open config file: " + path);
    }
    }

    /**
    * 获取资源流
    *
    * @param path
    * @return
    * @throws IOException
    */
    private static InputStream resourceStream(final String path) throws IOException {
    URL asResource = findAsResource(path);
    return asResource.openStream();
    }

    /**
    * 获取资源属性
    *
    * @param path
    * @return
    * @throws IOException
    */
    public static Properties getConfigProperties(String path) throws IOException {
    Properties properties = new Properties();
    properties.load(resourceStream(path));
    return properties;
    }


    }

  • 相关阅读:
    优雅的windowsC++项目的配置
    C++实现编码转换
    C++读取配置文件
    完全依赖QML实现播放器
    记一次和“N+1”的擦肩而过
    FFmpeg4.0笔记:采集系统声音
    FFmpeg4.0笔记:采集桌面
    FFmpeg4.0笔记:封装ffmpeg的解封装功能类CDemux
    SDL2:封装媒体显示播放Csdl2
    FFmpeg4.0笔记:封装ffmpeg的音频重采样功能类CSwr
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10254813.html
Copyright © 2011-2022 走看看