`

Util

    博客分类:
  • Java
 
阅读更多
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;

public class Util{
	
	private static Map debugTimers = new HashMap();
	
	private static final String QUOTE = "'";

	public static void startTimer(String timerId){
		debugTimers.put(timerId, (new Date()));
	}
	
	public static String ReplaceText(String sInput, String sTarget, String sReplace) {
		int iLen = 0;
		
		if(sInput==null){
			return "";
		}
		String sRtnStr = sInput;		
		do {
			iLen = sInput.indexOf(sTarget, iLen);
			if (iLen == -1)
				break;
			sRtnStr = sInput.substring(0, iLen) + sReplace
					+ sInput.substring(iLen + sTarget.length());
			iLen += sReplace.length();
			sInput = sRtnStr;
		} while (true);
		return sRtnStr.substring(0, sRtnStr.length());
	}
	
	public static void stopTimer(String timerId){
		debug("\"" + timerId + "\" in " + (new Date().getTime() - ((Date)debugTimers.get(timerId)).getTime()) + " ms.");
		debugTimers.put(timerId, null);
	}
	
	public static void clickTimer(String timerId){
		if(debugTimers.get(timerId) == null)
			startTimer(timerId);
		else
			stopTimer(timerId);
	}
	
	/**
	 * get "a,b,c" from String[] of "a","b","c" 
	 */
	public static String join(String[] strings){
		if(strings == null)
			return "";
		StringBuffer buffer = new StringBuffer();
		for(int i = 0; i < strings.length; i ++){
			buffer.append(strings[i]);
			if(i+1 != strings.length)
				buffer.append(",");
		}
		return buffer.toString();
	}
	
	public static String join(String[] strs, String delim){
		return join(strs, delim);
	}
	/**
	 * join a collection of objects using each object's toString() method
	 */
	public static String join(Collection s, String delimiter) {
        StringBuffer buffer = new StringBuffer();
        Iterator iter = s.iterator();
        while (iter.hasNext()) {
            buffer.append(iter.next());
            if (iter.hasNext()) {
                buffer.append(delimiter);
            }
        }
        return buffer.toString();
    }
	
	public static String[] arrayList_2_StringArray(ArrayList al){
		if (isEmpty(al))
			return null;
		String[] out = new String[al.size()];
		for(int i=0; i<al.size(); i++)
			out[i] = al.get(i).toString();
		return out;
	}
	
	public static ArrayList stringArray_2_ArrayList(String[] strs){
		ArrayList list = new ArrayList();
		for(int i=0; i<strs.length; i++){
			list.add(strs[i]);
		}
		return list;
	}
	
	public static boolean inArrayString(String[] a, String b){
		for(int i =0; i<a.length; i++)
			if (a[i].equals(b)) return true;
		return false;
	}
	
	public static String getUTFString(String sInput)
	{
		try
		{
			return new String(sInput.getBytes("8859-1"), "UTF-8");				
		}catch (Exception ex)
		{
			System.out.println("TEST error " + ex.getMessage());
			return sInput;
		}
	}
	
	public static HashMap getDaemonInitSetting(Connection conn, String paramKey) throws SQLException{
		HashMap hm = new HashMap();
		Statement stmt = conn.createStatement();
		
		// get daemon's own setting, can override common ERAS setting
		
		PreparedStatement ps = conn.prepareStatement( "SELECT SPP_ID, SPP_VALUE FROM SY_SYSPARMPROFILES WHERE upper(SPP_ID) like upper('%"+paramKey+"%')" );
		//ps.setString(1, paramKey);
		ResultSet rs = ps.executeQuery();
		while(rs.next()){
			String s = rs.getString(2);
			if(Util.isEmpty(s)){
				System.out.println("WARNING: The config '" + rs.getString(1) + "' is empty.");
			}
			hm.put(rs.getString(1), s);
		}
		
		stmt.close();
		return hm;
	}
	
	public static boolean isEmpty(Object obj){
		if(obj instanceof Object[]){
			for(int i=0; i < ((Object[])obj).length; i++)
				if(!isEmpty(((Object[])obj)[i]))
					return false;
			return true;
		}
		else return
			obj == null
			||
			obj instanceof String && ((String)obj).equals("")
			||
			obj instanceof StringBuffer && isEmpty(obj.toString())
			||
			obj instanceof Collection && ((Collection)obj).size() == 0
			;
	}
	
	public static String getStackTrace(Exception e){
		   StringWriter sw = new StringWriter();
		   PrintWriter pw = new PrintWriter(sw);
		   e.printStackTrace(pw);
		   return sw.toString();
	}
	
	public static ArrayList toArrayList(String[] strs){
		ArrayList list = new ArrayList();
		for(int i=0; i<strs.length; i++){
			list.add(strs[i]);
		}
		return list;
	}
	
	public static String NVL(String s){
		return (s == null) ? "" : s;    	
	}
	
	public static String NVLR(String s, String r){
		if (s == null)
			return r;
		else if (s.equals(""))
			return r;
		else
			return s;
	}
	
	public static String NVL2(String s){
		return (s.equals("null")) ? "" : s;
	}
	
	public static void debug(Object obj){
		try{
			throw new Exception("");
		}
		catch(Exception e){
				System.out.println( "[" + 
	                    e.getStackTrace()[1].getClassName() + 
	                    "." +
	                    e.getStackTrace()[1].getMethodName() + 
	                    "] " + ((obj== null) ? "null" : obj.toString()));
			}
	}
	
	public static String getHostName(){
	    try {
	        InetAddress addr = InetAddress.getLocalHost();
	    
	        // Get IP Address
	        //byte[] ipAddr = addr.getAddress();
	    
	        // Get hostname
	        String hostname = addr.getHostName();
	        return hostname;
	    } catch (UnknownHostException e) {
	    	return "UnknownHostException";
	    }

	}
	
	public static boolean setHeldRequstFail(Connection conn, Hashtable param, String key) throws SQLException{

		String name = (String)param.get(key+".tablename");
		String prefix = (String)param.get(key+".tableprefix");
		String status = (String)param.get(key+".exceptStatus");
		
		if (isEmpty(name) || isEmpty(prefix) || isEmpty(status)){
			return false;
		} else{
			String sql = "update "+name+" set "+prefix+"_STATUS = 'F' where "+prefix+"_STATUS not in ("+status+") and "+prefix+"_MACHINE_ID = '"+getHostName()+"'";
			Statement stmt = conn.createStatement();	
			PreparedStatement ps = conn.prepareStatement(sql);
	
			ps.execute();
			stmt.close();
		}
		return true;
	}

	public static String decryptPassword(String sConnStr, String sCipher, String sOutputFileName, String sExeFullPath) throws Exception {
		
		File oExeFile = null;
		File oOutputFile = null;
		String sExePath = "";
		FileReader fr = null;
		BufferedReader br = null;
		String sPlainText = "";
		
		try
		   {
			
			oExeFile = new File(sExeFullPath);
			sExePath = oExeFile.getParent();
		    Runtime rt = Runtime.getRuntime();
		    Process p = rt.exec(new String[] {sExeFullPath, "\"" + sConnStr + "\"", 
		    		"\"" + sCipher + "\"", 
		    		"\"" + sExePath + File.separator + sOutputFileName + "\"" });
		    
		    p.waitFor();
		    //p.destroy();
		    
		    oOutputFile = new File(sExePath + File.separator + sOutputFileName);
		    fr = new FileReader(oOutputFile);
		    br = new BufferedReader(fr);
		    
		    sPlainText = br.readLine();		   		    
		    return sPlainText;
		    }
		catch(Exception ex){
		    	/*handle exception*/
			throw ex;
			}
		finally {
			if (br != null)
				br.close();
			if (fr != null)
				fr.close();
			if (oOutputFile != null)
				oOutputFile.delete();
		}
	}
	
	public static String getStrackTrace(Exception e){
		String err ="";
		StackTraceElement st[] = e.getStackTrace();
		for (int i=0; i<st.length; i++)
			err +=st[i].toString()+"\n";
		return err;
	}
	
	public static String decrypt(String sCipher, String sOutputFileName, String sExeFullPath) throws Exception {
		
		File oExeFile = null;
		File oOutputFile = null;
		String sExePath = "";
		FileReader fr = null;
		BufferedReader br = null;
		String sPlainText = "";
		
		try
		   {
			
			oExeFile = new File(sExeFullPath);
			sExePath = oExeFile.getParent();
		    Runtime rt = Runtime.getRuntime();
		    Process p = rt.exec(new String[] {sExeFullPath, 
		    		"\"" + sCipher + "\"", 
		    		"\"" + sExePath + File.separator + sOutputFileName + "\"" });
		    
		    p.waitFor();
		    //p.destroy();
		    
		    oOutputFile = new File(sExePath + File.separator + sOutputFileName);
		    fr = new FileReader(oOutputFile);
		    br = new BufferedReader(fr);
		    
		    sPlainText = br.readLine();		   		    
		    return sPlainText;
		    }
		catch(Exception ex){
		    	/*handle exception*/
			throw ex;
			}
		finally {
			if (br != null)
				br.close();
			if (fr != null)
				fr.close();
			if (oOutputFile != null)
				oOutputFile.delete();
		}
	}
}

 

分享到:
评论

相关推荐

    util-linux-ng-2.17源码(含fdisk)

    util-linux-ng-2.17源码(含fdisk) Here is a list of all documented files with brief descriptions: util-linux-ng-2.17.2/disk-utils/blockdev.c [code] util-linux-ng-2.17.2/disk-utils/cramfs.h [code] ...

    asm-util.jar

    asm-util-1.3.4.jar, asm-util-1.3.5.jar, asm-util-1.4.1.jar, asm-util-1.4.3.jar, asm-util-1.5.1.jar, asm-util-1.5.2.jar, asm-util-1.5.3.jar, asm-util-2.0.jar, asm-util-2.1.jar, asm-util-2.2.1-sources....

    ws-commons-util-1.0.2.zip_ws-comm-util.jar

    【标题】"ws-commons-util-1.0.2.zip_ws-comm-util.jar" 提供的是一个名为 ws-commons-util 的库的版本1.0.2,这个库经过压缩打包成ZIP格式,其中包含了 ws-comm-util.jar 文件。这个JAR文件是Java应用程序中常见的...

    apr-util-1.5.4.tar.gz

    标题中的"apr-util-1.5.4.tar.gz"是一个开源软件库的归档文件,它属于Apache Portable Runtime (APR)项目的一部分。APR是一个为各种操作系统提供统一API的库,主要用于处理底层系统功能,如文件I/O、网络通信、进程...

    opentracing-util-0.33.0-API文档-中文版.zip

    赠送jar包:opentracing-util-0.33.0.jar 赠送原API文档:opentracing-util-0.33.0-javadoc.jar 赠送源代码:opentracing-util-0.33.0-sources.jar 包含翻译后的API文档:opentracing-util-0.33.0-javadoc-API...

    apr-util linux 编译成功

    `apr-util`提供了许多实用程序,包括数据库接口、加密库支持、XML解析等功能,为开发跨平台的软件提供了一致且可靠的底层服务。 在编译`apr-util`的过程中,有几个关键的步骤和知识点需要了解: 1. **环境准备**:...

    Utiljs一些很实用的javaScript函数封装集合

    Util.js 是一个非常实用的JavaScript库,它封装了一系列常见的功能函数,旨在简化开发过程,提高代码的可复用性和效率。这个库涵盖了多种类别,包括处理数组、浏览器特性、日期操作、函数辅助、数学计算、媒体操作、...

    USB DFU-util烧写固件

    USB DFU-util是一种通用串行总线(USB)设备固件升级工具,广泛应用于嵌入式系统和微控制器的固件更新。它基于Device Firmware Upgrade(DFU)规范,该规范由USB Implementers Forum(USB-IF)定义,允许用户通过USB...

    jetty-util-9.4.43.v20210629-API文档-中文版.zip

    赠送jar包:jetty-util-9.4.43.v20210629.jar; 赠送原API文档:jetty-util-9.4.43.v20210629-javadoc.jar; 赠送源代码:jetty-util-9.4.43.v20210629-sources.jar; 赠送Maven依赖信息文件:jetty-util-9.4.43.v...

    Linux 中util-linux 工具包的源码

    在Linux操作系统中,`util-linux`工具包是一个不可或缺的部分,它包含了大量用于系统管理、文件操作和用户交互的命令行工具。源码分析对于开发者和系统管理员来说具有很高的价值,因为它允许他们理解这些命令的工作...

    util-linux源码

    《util-linux源码详解》 在Linux操作系统中,util-linux是一个极为重要的软件包,它包含了大量用于系统管理和维护的实用工具。此包以其丰富的功能和广泛的适用性,成为了Linux开发者和系统管理员不可或缺的工具集。...

    C#常用工具类代码集合Util(自己工作总结)

    "MJ.Util"、"MJ.Util.Extension"和"MJ.Util.Model"这三个文件名暗示了这个压缩包可能包含了C#中的实用工具类、扩展方法以及数据模型类。 1. **MJ.Util**: 这个命名很可能代表了一个包含各种通用功能的工具类库。...

    JacksonUtil及Jar包1.9

    JacksonUtil是基于Jackson库的一个工具类,用于简化JSON序列化和反序列化的操作。Jackson是Java领域中广泛使用的开源库,由FasterXML公司维护,主要用于处理JSON数据。它的核心功能包括将Java对象转换为JSON格式,...

    Java常用工具类UtilClass

    在Java编程中,工具类(Util Class)是包含各种实用函数的静态类,它们提供了一种简化常见任务的方法。在给定的`UtilClass`中,我们有五个主要的工具类:`StringUtil`、`FileUtil`、`ConnectDB`、`DateUtil`和`...

    C# Util 实用工具类

    为了提高开发效率,程序员们常常会创建一些实用工具类库,如"C# Util",它整合了多种常用的功能模块,使得代码复用变得更为便捷。下面将详细阐述这个工具类库中的主要组成部分及其应用场景。 1. **Json**: JSON...

    util-linux-2.24.1.tar.xz

    《util-linux-2.24.1:OpenWrt SDK构建关键组件解析》 在Linux系统开发和定制领域,OpenWrt是一个广受欢迎的开源项目,它为各种嵌入式设备提供了高度可定制的固件。当我们谈论"util-linux-2.24.1.tar.xz"时,我们...

    util-linux-ng-2.14.1-bin和dep.zip

    《util-linux-ng-2.14.1-bin与dep.zip:Git Flow的必备组件解析》 在软件开发领域,高效协作和版本控制是至关重要的。Git Flow作为一种分支管理策略,为团队提供了规范化的开发流程。在实现Git Flow的过程中,有时...

    util-linux-ng-util-linux-ng-2.17.2-12.24.el6_8.1.zip

    《util-linux-ng:Linux系统维护的核心工具》 util-linux-ng是一个在Linux系统中不可或缺的工具集,它包含了众多用于系统管理、磁盘处理和文件系统检查的重要程序。这个压缩包"util-linux-ng-util-linux-ng-2.17.2-...

    HttpClientUtil工具类 里面包含GET POST 及返回值处理

    下面将详细解释HttpClientUtil的主要功能和使用方法。 1. **HttpClient介绍**: Apache HttpClient是一个Java库,它提供了对HTTP协议的强大支持,包括各种HTTP方法(GET, POST, PUT等),重试策略,连接管理,以及...

Global site tag (gtag.js) - Google Analytics