非常有用的Java程序片段

1.向文件末尾添加内容

BufferedWriter out = null;   
try {   
    out = new BufferedWriter(new FileWriter(”filename”, true));   
    out.write(”aString”);   
} catch (IOException e) {   
    // error processing code   
} finally {   
    if (out != null) {   
        out.close();   
    }   
}  
View Code

2.得到当前方法的名字

String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();  
View Code

3.使用JDBC链接Oracle

public class OracleJdbcTest   
{   
    String driverClass = "oracle.jdbc.driver.OracleDriver";   
   
    Connection con;   
   
    public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException   
    {   
        Properties props = new Properties();   
        props.load(fs);   
        String url = props.getProperty("db.url");   
        String userName = props.getProperty("db.user");   
        String password = props.getProperty("db.password");   
        Class.forName(driverClass);   
   
        con=DriverManager.getConnection(url, userName, password);   
    }   
   
    public void fetch() throws SQLException, IOException   
    {   
        PreparedStatement ps = con.prepareStatement("select SYSDATE from dual");   
        ResultSet rs = ps.executeQuery();   
   
        while (rs.next())   
        {   
            // do the thing you do   
        }   
        rs.close();   
        ps.close();   
    }   
   
    public static void main(String[] args)   
    {   
        OracleJdbcTest test = new OracleJdbcTest();   
        test.init();   
        test.fetch();   
    }   
}  
View Code

4.把 Java util.Date 转成 sql.Date

java.util.Date utilDate = new java.util.Date();   
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());  
View Code

5.使用NIO进行快速的文件拷贝

public static void fileCopy( File in, File out )   
            throws IOException   
    {   
        FileChannel inChannel = new FileInputStream( in ).getChannel();   
        FileChannel outChannel = new FileOutputStream( out ).getChannel();   
        try  
        {   
//          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows   
   
            // magic number for Windows, 64Mb - 32Kb)   
            int maxCount = (64 * 1024 * 1024) - (32 * 1024);   
            long size = inChannel.size();   
            long position = 0;   
            while ( position < size )   
            {   
               position += inChannel.transferTo( position, maxCount, outChannel );   
            }   
        }   
        finally  
        {   
            if ( inChannel != null )   
            {   
               inChannel.close();   
            }   
            if ( outChannel != null )   
            {   
                outChannel.close();   
            }   
        }   
    }  
View Code

6.把 Array 转换成 Map

import java.util.Map;   
import org.apache.commons.lang.ArrayUtils;   
   
public class Main {   
   
  public static void main(String[] args) {   
    String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },   
        { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };   
   
    Map countryCapitals = ArrayUtils.toMap(countries);   
   
    System.out.println("Capital of Japan is " + countryCapitals.get("Japan"));   
    System.out.println("Capital of France is " + countryCapitals.get("France"));   
  }   
}  
View Code

7.改变数组的大小

/**  
* Reallocates an array with a new size, and copies the contents  
* of the old array to the new array.  
* @param oldArray  the old array, to be reallocated.  
* @param newSize   the new array size.  
* @return          A new array with the same contents.  
*/  
private static Object resizeArray (Object oldArray, int newSize) {   
   int oldSize = java.lang.reflect.Array.getLength(oldArray);   
   Class elementType = oldArray.getClass().getComponentType();   
   Object newArray = java.lang.reflect.Array.newInstance(   
         elementType,newSize);   
   int preserveLength = Math.min(oldSize,newSize);   
   if (preserveLength > 0)   
      System.arraycopy (oldArray,0,newArray,0,preserveLength);   
   return newArray;   
}   
   
// Test routine for resizeArray().   
public static void main (String[] args) {   
   int[] a = {1,2,3};   
   a = (int[])resizeArray(a,5);   
   a[3] = 4;   
   a[4] = 5;   
   for (int i=0; i<a.length; i++)   
      System.out.println (a[i]);   
} 
View Code

 

 

 

posted @ 2013-09-24 10:06  李小加  阅读(159)  评论(0编辑  收藏  举报