| 
					
				 | 
			
			
				@ -0,0 +1,188 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.hos.broker.util; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.sql.Connection; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.sql.PreparedStatement; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.sql.ResultSet; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.sql.SQLException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by Quan on 22/12/2014. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class IOUtil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * Read the stream into byte array 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param inputStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @throws IOException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static byte[] readData(InputStream inputStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return readDataNice(inputStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        	close(inputStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static byte[] readDataNice(InputStream inputStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						ByteArrayOutputStream boTemp = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        byte[] buffer = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            int read; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							buffer = new byte[8192]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boTemp = new ByteArrayOutputStream(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            while ((read=inputStream.read(buffer, 0, 8192)) > -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                boTemp.write(buffer, 0, read); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return boTemp.toByteArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * Close streams (in or out) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void close(Closeable stream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (stream != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (stream instanceof Flushable) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    ((Flushable)stream).flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                stream.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // When the stream is closed or interupted, can ignore this exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static void close(Connection conn) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (conn != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                conn.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                // When the conn is closed or interupted, can ignore this exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void close(ResultSet rs) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    	if (rs != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    			rs.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		} catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    			// When the file is closed already, can ignore this exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static void close(PreparedStatement ps) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    	if (ps != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    			ps.close(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		} catch (SQLException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    			// When the file is closed already, can ignore this exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * Will close stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param charSet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String toString(InputStream in, String charSet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						return inputStreamToString_force(in, charSet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * Will close stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param charSet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String inputStreamToString_force(InputStream in, String charSet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return inputStreamToString(in, charSet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * Reads in whole input stream and returns as a string<br> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * Will close stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param in The input stream to read in, will be closed  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 				by this method at finish 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param charSet charset to convert the input bytes into string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return the result string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws IOException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String inputStreamToString(InputStream in, String charSet) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						InputStreamReader inputStreamReader = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							inputStreamReader = charSet == null? new InputStreamReader(in) : new InputStreamReader(in, charSet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return toString(inputStreamReader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (UnsupportedEncodingException e1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException(e1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							close(in); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * Reads in whole input stream and returns as a string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param reader The input reader to read in, will be closed  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 				by this method at finish 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return the result string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws IOException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					public static String toString(Reader reader) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							StringBuilder sb = new StringBuilder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							char[] buffer = new char[4096]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							for (int read; (read = reader.read(buffer)) > -1;) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
								sb.append(buffer, 0, read); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							return sb.toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} catch (IOException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							throw new RuntimeException(e); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
							close(reader); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * Read the input stream and write to output stream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param inputStream 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @param out 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 * @throws IOException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
					 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public static long connect(InputStream inputStream, OutputStream out) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return dump(inputStream, out); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            close(inputStream); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static long dump(InputStream inputStream, OutputStream out) throws IOException { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        long total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int read; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int bufferSize = 8192; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        byte[] buffer = new byte[bufferSize]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        while ((read=inputStream.read(buffer, 0, bufferSize)) > -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            out.write(buffer, 0, read); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            total+=read; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        out.flush(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return total; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |