Some useful java codes

1. Collections.sort for ArrayList

Collections.sort(urlList,new Comparator<UrlEntity>(){
    public int compare(UrlEntity objOne, UrlEntity objTwo) {
	return ((Double)objTwo.getPr()).compareTo((Double)objOne.getPr());
    }
});


2. Collections.sort for HashMap

Map<Integer, Integer> map = new HashMap<Integer, Integer>();
List<Map.Entry<Integer, Integer>> list = new ArrayList<Map.Entry<Integer, Integer>>(map.entrySet());
Collections.sort(list, new Comparator<Map.Entry<Integer, Integer>>(){
	public int compare(Map.Entry<Integer, Integer> one, Map.Entry<Integer, Integer> two){
		return one.getValue().compareTo(two.getValue());
	}
});


4. Traversal for HashMap

for(Iterator iter = map.entrySet.iterator(); iter.hasNext; ){
    Entry entry = (Entry) iter.next();
    String key = (String) entry.getKey();
    String value = (String) entry.getValue();
}


for(String key : map.keySet()){
    String value = map.get(key);
}


5. Traversal for HashSet

for(Iterator<String> iter = set.iterator(); iter.hasNext(); ){
    String key = iter.next();
}


for(String key : set){
			
}

6. 单数单词变复数

System.out.println(Inflector.getInstance().pluralize("project")); //打印 projects
System.out.println(Inflector.getInstance().pluralize("news")); //打印 news

System.out.println(Inflector.getInstance().tableize(BlogComment.class)); //打印 blog_comments

Inflector.getInstance().singularize("including Classes");//复数变单数


7. 有效数字

BigDecimal b = new BigDecimal(0.0123, new MathContext(4));
或者

BigDecimal bd = new BigDecimal(0.123456);
bd = bd.round(new MathContext(5));

8. Pattern and Matcher

Pattern pattern = Pattern.compile(reg);  
String[] lines = entityBody.split("(\n|\r\n)+");  
for(int i = 0; i < lines.length; i++){  
     Matcher matcher = pattern.matcher(lines[i]);  
     while(matcher.find()){  
          System.out.println(matcher.group());  
     }  
}


9. IOProcess

/********************
 * Copyright (c) 2013 Xiaoshi Zhong
 * All rights reserved. This program and the accompanying materials are made available
 * under the terms of the GNU lesser Public License v3 which accompanies this distribution,
 * and is available at http://www.gnu.org/licenses/lgpl.html
 * 
 * Contributors : Xiaoshi Zhong
 * **********************/

/**
 * IO / File Processing
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;

public class IOProcess {
	
	/**
	 * According the input destination filename, create a new file or a file to append stream to the last,
	 * and the encoding method, create an output stream----OutputStreamWriter
	 * which can automatic create the new file
	 * 
	 * @param filename : indicates the filename of the file to be create
	 * @param isAppend : indicates whether the file to be create is a new file or just append stream into it.
	 * @param encoding : indicates which encoding the file uses.
	 * @return OutputStreamWriter : 
	 * @throws IOException
	 */
	public static OutputStreamWriter newWriter(String filename, boolean isAppend, String encoding){

		File file = new File(filename);
		OutputStreamWriter output = null;
		/**
		 * If the file to be created does not exist, if needs to create the file path.
		 */
		try {
			if(! file.exists()){
				int lastIndexOfSlash = filename.lastIndexOf("/");
				if(lastIndexOfSlash != -1){
					String pathname = filename.substring(0, lastIndexOfSlash);
					File path = new File(pathname);
					if(! path.exists())
						path.mkdirs();
				}
				
				/** In this case, we need to create a new, empty file */
				file.createNewFile();
			}else if(! isAppend){
				file.delete();
				/** In this case, we need to create a new, empty file */
				file.createNewFile();
			}
			/**
			 * Create an OutputStreamWriter
			 * */
			output = new OutputStreamWriter(new FileOutputStream(file,true),encoding);	
		} catch (IOException e) {
			e.printStackTrace();
		} finally { }
		
		return output;
	}
	
	/**
	 * Set the default isAppend to be "false"
	 */
	public static OutputStreamWriter newWriter(String filename, String encoding){
		return newWriter(filename, false, encoding);
	}
	
	/**
	 * Set the default encoding to be "UTF-8"
	 */
	public static OutputStreamWriter newWriter(String filename, boolean isAppend){
		return newWriter(filename, isAppend, "UTF-8");
	}
	
	/**
	 * Set the default encoding to be "UTF-8", and default isAppend to be "true"
	 * 
	 * @param filename
	 * @return
	 * @throws IOException
	 */
	public static OutputStreamWriter newWriter(String filename){
		return newWriter(filename, false, "UTF-8");
	}
	
	/**
	 * Set the default encoding to be "UTF-8"
	 * */
	public static OutputStreamWriter newWriter(File file, boolean isAppend){
		return newWriter(file.toString(), isAppend, "UTF-8");
	}
	
	/**
	 * Set the default encoding to be "UTF-8", and default isAppend to be "true"
	 * */
	public static OutputStreamWriter newWriter(File file){
		return newWriter(file.toString(), false, "UTF-8");
	}
	
	/**
	 * Save the content to file with the encoding
	 * */
	public static boolean saveFile(String filename, String content, String encoding){
		try {
			OutputStreamWriter output = newWriter(filename, encoding);
			output.write(content);
			output.close();			
			return true;
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return false;
	}
	
	public static boolean saveFile(File file, String content, String encoding){
		return saveFile(file.toString(), content, encoding);
	}
	
	public static boolean saveFile(String filename, String content) {
		return saveFile(filename, content, "UTF-8");
	}
	
	public static boolean saveFile(File file, String content){
		return saveFile(file.toString(), content);
	}

	/**
	 * Get the file list according to the folder name and store them in an file array.
	 * 
	 * @param folderName
	 * @return : the file array
	 */
	public static File[] getFiles(String folderName){
		return new File(folderName).listFiles();		
	}
	
	/**
	 * Get the file list according to the folder and store them in an file array
	 * 
	 * @param folder
	 * @return : the file array
	 */
	public static File[] getFiles(File folder){
		return folder.listFiles();
	}
	
	/**
	 * Create a new buffered reader according to a file and set the default encoding as "UTF-8"
	 * 
	 * @param file
	 * @return
	 * @throws IOException
	 */
	public static BufferedReader newReader(File file) {
		return newReader(file, "UTF-8");
	}
	
	/**
	 * Create a new buffered reader according to filename and set the default encoding as "UTF-8"
	 * 
	 * @param fileName
	 * @return
	 * @throws IOException
	 */
	public static BufferedReader newReader(String fileName) {
		return newReader(fileName, "UTF-8");
	}
	
	/**
	 * Create a new buffered reader according to the file and the encoding, the file will be changed
	 * into filename string
	 * 
	 * */
	public static BufferedReader newReader(File file, String encoding){
		BufferedReader br = null;
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream(file), encoding));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return br;
	}
	
	/**
	 * Create a new buffered reader according to the filename and the encoding
	 * */
	public static BufferedReader newReader(String fileName, String encoding){
		BufferedReader br = null;
		try {
			br = new BufferedReader(new InputStreamReader(new FileInputStream(new File(fileName)), encoding));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return br;
	}
	
	/**
	 *  Create a new buffered reader according to an url and set the default encoding as "UTF-8"
	 * 
	 * @param url
	 * @return
	 * @throws IOException
	 */
	public static BufferedReader newReader(URL url){
		return newReader(url, "UTF-8");
	}
	
	/**
	 * Create a new buffered reader according to an url and the encoding
	 * */
	public static BufferedReader newReader(URL url, String encoding){
		BufferedReader br = null;
		try {
			br = new BufferedReader(new InputStreamReader(url.openStream(), encoding));
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return br;
	}
	
	/**
	 * Check whether the file exists or not according to its filename
	 * */
	public static boolean isFileExist(String filename){
		File file = new File(filename);
		if(file.exists())
			return true;
		return false;
	}
	
	/**
	 * Delete a file if the file exists
	 * */
	public static void deleteFile(String filename){
		File file = new File(filename);
		if(file.exists())
			file.delete();
	}
	
	/**
	 * Check the path and complete it if it is not end with "/"
	 * */
	public static String checkPath(String path){
		if(!path.endsWith("/"))
			path += "/";
		return path;
	}
}


10. ConnectDB

/******************************************************
 * Copyright (c) 2014 Xiaoshi Zhong
 * All rights reserved. This program and the accompanying materials are made available
 * under the terms of the GNU lesser Public License v3 which accompanies this distribution,
 * and is available at http://www.gnu.org/licenses/lgpl.html
 * 
 * Contributors : Xiaoshi Zhong
 * *******************************************/

import IOProcess;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnectDB {

	/**
	 * @param args
	 */
	private Connection conn;
	
	private String HOST;
	private String PORT;
	private String DATABASE;
	private String USERNAME;
	private String PASSWORD;
	
	public ConnectDB(String address, String database, String username, String password){
		setConnection(address, database, username, password);
	}
	
	public ConnectDB(String host, String port, String database, String username, String password){
		setConnection(host, port, database, username, password);
	}
	
	private void setConnection(String address, String database, String username, String password){
		String[] items = address.split(":");
		String url = null;
		if(items.length == 1){
			this.HOST = items[0];
			this.PORT = "3306";
			//url = "jdbc:mysql://" + address + ":3306/" + database + "?zeroDateTimeBehavior=convertToNull";
			url = "jdbc:mariadb://" + address + ":3306/" + database + "?zeroDateTimeBehavior=convertToNull";
		}else if(items.length == 2){
			this.HOST = items[0];
			this.PORT = items[1];
			//url = "jdbc:mysql://" + IOProcess.checkPath(address) + database + "?zeroDateTimeBehavior=convertToNull";
			url = "jdbc:mariadb://" + IOProcess.checkPath(address) + database + "?zeroDateTimeBehavior=convertToNull";
		}
		
		this.DATABASE = database;
		this.USERNAME = username;
		this.PASSWORD = password;
		
		setConnection(url, username, password);
	}
	
	private void setConnection(String host, String port, String database, String username, String password){
		//String url = "jdbc:mysql://" + host + ":" + port + "/" + database + "?zeroDateTimeBehavior=convertToNull";
		String url = "jdbc:mariadb://" + host + ":" + port + "/" + database + "?zeroDateTimeBehavior=convertToNull";
		
		this.HOST = host;
		this.PORT = port;
		this.DATABASE = database;
		this.USERNAME = username;
		this.PASSWORD = password;
		setConnection(url, username, password);
	}
	
	private void setConnection(String url, String username, String password){
		try{
			//Class.forName("com.mysql.jdbc.Driver");
			//Class.forName("org.postgresql.Driver");
			Class.forName("org.mariadb.jdbc.Driver");
			conn = DriverManager.getConnection(url, username, password);
		} catch (Exception e){
			e.printStackTrace();
			System.out.println("Fail to connect database, please check.");
			return;
		} finally {
		}
		System.out.println("Successful to connect database.");
	}
	
	/**
	 * SELECT count(*) FROM tablename WHERE conditions;
	 * */
	public ResultSet executeQuery(String sql){
		ResultSet rs = null;
		try{
			Statement statement = conn.createStatement();
			rs = statement.executeQuery(sql);
		} catch (SQLException e){
			e.printStackTrace();
			System.out.println(sql);
		} finally {}
		return rs;
	}
	
	/**
	 * UPDATE tablename SET firstName='Xiaoshi' WHERE lastname='Zhong';
	 * */
	public int executeUpdate(String sql){
		int n = 0;
		try{
			Statement statement = conn.createStatement();
			n = statement.executeUpdate(sql);
			statement.close();
		} catch (SQLException e){
			e.printStackTrace();
			System.out.println(sql);
		} finally {}
		return n;
	}
	
	/**
	 * INSERT INTO tablename (firstname, ..., lastname) VALUES (firstvalue, ..., lastvalue);
	 * */
	public int executeInsert(String sql){
		int n = 0;
		try{
			Statement statement = conn.createStatement();
			n = statement.executeUpdate(sql);
			statement.close();
		} catch (SQLException e){
			e.printStackTrace();
			System.out.println(sql);
		} finally {}
		return n;
	}
	
	/**
	 * INSERT INTO tablename (firstname, ..., lastname) VALUES (firstvalue, ..., lastvalue),..., (firstvalue, ..., lastvalue)
	 * ON DUPLICATE KEY UPDATE firstname=VALUES(firstname), ..., lastname=VALUES(lastname);
	 * */
	public int executeInsertDuplicate(String sql){
		int n = 0;
		try{
			Statement statement = conn.createStatement();
			n = statement.executeUpdate(sql);
			statement.close();
		} catch (SQLException e){
			e.printStackTrace();
			System.out.println(sql);
		} finally {}
		return n;
	}
	
	/**
	 * Not recommend using REPLACE function
	 * */
	public int executeReplace(String sql){
		int n = 0;
		try{
			Statement statement = conn.createStatement();
			n = statement.executeUpdate(sql);
			statement.close();
		} catch (SQLException e){
			e.printStackTrace();
			System.out.println(sql);
		} finally {}
		return n;
	}
	
	
	public String getHost(){
		return HOST;
	}
	
	public String getPort(){
		return PORT;
	}
	
	public String getDatabase(){
		return DATABASE;
	}
	
	public String getUsername(){
		return USERNAME;
	}
	
	public String getPassword(){
		return PASSWORD;
	}
	
	private void releaseConnection(){
		try{
			if(conn != null && !conn.isClosed()){
				conn.close();
				System.out.println("Successful to close the database connection.");
			}
		} catch (SQLException e){
			e.printStackTrace();
		} finally {}
	}
	
	public void release(){
		releaseConnection();
	}
}


11. HttpProcess

/**********************************
 * Copyright (c) 2015 Xiaoshi Zhong
 * All rights reserved. This program and the accompanying materials are made available
 * under the terms of the GNU lesser Public License v3 which accompanies this distribution,
 * and is available at http://www.gnu.org/licenses/lgpl.html
 * 
 * Contributors : Xiaoshi Zhong
 * ****************************/

import java.net.URI;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;

public class HttpProcess {
	
	private static HttpClient httpclient;
	
	static {
		httpclient = new DefaultHttpClient();
	}
	
	public static String httpgetText(String inputUrl){
		return httpgetText(inputUrl, "UTF8");
	}
	
	public static String httpgetText(String inputUrl, String outputEncoding){
		try {
			return httpgetText(new URI(inputUrl), outputEncoding);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return null;
	}
	
	public static String httpgetText(URI inputUrl){
		return httpgetText(inputUrl, "UTF8");
	}
	
	public static String httpgetText(URI inputUrl, String outputEncoding){
		HttpGet httpget = new HttpGet();
		httpget.addHeader("User-Agent", "Mozilla/5.0 Firefox/3.5.9 Chrome/26.0.1410.64");
		String entityBody = null;
		try {
			httpget.setURI(inputUrl);
			HttpResponse response = httpclient.execute(httpget);
			HttpEntity entity = response.getEntity();
			if(entity != null){
				entityBody = EntityUtils.toString(entity, outputEncoding);
			}
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			httpget.abort();
		}
		return entityBody;
	}
	
	public static String httppostText(String inputUrl, Map<String, String> nameValues, Map<String, String> headers){
		return httppostText(inputUrl, nameValues, headers, "UTF8", "UTF8");
	}
	
	public static String httppostText(URI inputUrl, Map<String, String> nameValues, Map<String, String> headers){
		return httppostText(inputUrl, nameValues, headers, "UTF8", "UTF8");
	}
	
	public static String httppostText(String inputUrl, Map<String, String> nameValues, Map<String, String> headers, String inputEncoding, String outputEncoding){
		try {
			return httppostText(new URI(inputUrl), nameValues, headers, inputEncoding, outputEncoding);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally { }
		return null;
	}
	
	public static String httppostText(URI inputUrl, Map<String, String> nameValues, Map<String, String> headers, String inputEncoding, String outputEncoding){
		HttpPost httppost = new HttpPost();
		
		List<NameValuePair> nvp = new ArrayList<NameValuePair>();
		for(String name : nameValues.keySet())
			nvp.add(new BasicNameValuePair(name, nameValues.get(name)));
		
		String entityBody = null;
		try {
			httppost.setURI(inputUrl);
			httppost.setEntity(new UrlEncodedFormEntity(nvp, inputEncoding));
			
			for(String name : headers.keySet())
				httppost.addHeader(name, headers.get(name));
			
			HttpResponse response = httpclient.execute(httppost);
			
			HttpEntity entity = response.getEntity();
			
			if(entity != null)
				entityBody = EntityUtils.toString(entity, outputEncoding);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {
			httppost.abort();
		}
		
		return entityBody;
	}
	
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值