Package org.tcm1998.utils

Source Code of org.tcm1998.utils.ResourceUtils

/**
* Filename  : ResourceUtils.java
* Created   : Sep 3, 2006 by Administrator
*/
package org.tcm1998.utils;

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

import org.tcm1998.utils.ResourceUtils;
/**
* @author tcm1998
*
*/
public class ResourceUtils {
  public static BufferedReader openResource(String p_resourceName){
    BufferedReader buf_in;
    try{
      ClassLoader loader = ResourceUtils.class.getClassLoader();
      InputStream par_in  = loader.getResourceAsStream(p_resourceName);
      if (par_in == null){
        throw new IOException();
      }
      InputStreamReader parstream = new InputStreamReader(par_in);
      buf_in = new BufferedReader(parstream);
      buf_in.mark(2);
      buf_in.read(); // just read one character to see if we can
      buf_in.reset();
    }
    catch (IOException e){
      try{
        buf_in = new BufferedReader(new FileReader(p_resourceName));
        buf_in.mark(2);
        buf_in.read();
        buf_in.reset();
      }
      catch (IOException e1){
        buf_in = null;
      }
    }
    return buf_in;   
  }
 
  public static InputStream openBinaryResource(String p_resourceName){
    InputStream par_in = null;   
    try{
      ClassLoader loader = ResourceUtils.class.getClassLoader();
      par_in  = loader.getResourceAsStream(p_resourceName);
      if (par_in == null){
        throw new IOException();
      }
      par_in.read(); // just read one character to see if we can
      par_in.close();
      par_in = loader.getResourceAsStream(p_resourceName);
    }
    catch (IOException e){
      try{
        byte dummy[] = new byte[2];
        par_in = new FileInputStream(p_resourceName);
        par_in.read(dummy,0,1);
        par_in.close();
        par_in = new FileInputStream(p_resourceName);
      }
      catch (IOException e1){
        par_in = null;
      }
    }
    return par_in;   
  }
 
  public static String getProgramPath(String p_szResourceName){
    String result = "";
    ClassLoader loader = ResourceUtils.class.getClassLoader();
    URL url = loader.getResource(p_szResourceName);
    if (url != null){
      result = url.getPath();
      int pos = result.indexOf("file:/");
      if (pos != -1){
        result = result.substring(pos+6);
      }
      result = result.replaceAll("%20", " ");
      pos = result.indexOf("accat.jar!/");
      if (pos != -1){
        result = result.substring(0,pos);
      }
      else{
        pos = result.indexOf(p_szResourceName);
        if (pos != -1){
          result = result.substring(0,pos);
        }
      }     
    }
    return result;
  }
}
TOP

Related Classes of org.tcm1998.utils.ResourceUtils

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.