/**
* 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;
}
}