20个java常用片段

1. 字符串有整型的相互转换 
Java代码 
1.String a = String.valueOf(2);   //integer to numeric string    
2.int i = Integer.parseInt(a); //numeric string to an int  

2. 向文件末尾添加内容 
Java代码 
1.BufferedWriter out = null;    
2.try {    
3.    out = new BufferedWriter(new FileWriter(”filename”, true));    
4.    out.write(”aString”);    
5.} catch (IOException e) {    
6.    // error processing code    
7.} finally {    
8.    if (out != null) {    
9.        out.close();    
10.    }    
11.}  

Java代码 
1. 3. 得到当前方法的名字  
2.String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();  

4. 转字符串到日期 
Java代码 
1.java.util.Date = java.text.DateFormat.getDateInstance().parse(date String);  

或者是: 
Java代码 
1.SimpleDateFormat format = new SimpleDateFormat( "dd.MM.yyyy" );    
2.Date date = format.parse( myString );  

5. 使用JDBC链接Oracle 
Java代码 
1.public class OracleJdbcTest    
2.{    
3.    String driverClass = "oracle.jdbc.driver.OracleDriver";    
4.  
5.    Connection con;    
6.  
7.    public void init(FileInputStream fs) throws ClassNotFoundException, SQLException, FileNotFoundException, IOException    
8.    {    
9.        Properties props = new Properties();    
10.        props.load(fs);    
11.        String url = props.getProperty("db.url");    
12.        String userName = props.getProperty("db.user");    
13.        String password = props.getProperty("db.password");    
14.        Class.forName(driverClass);    
15.  
16.        con=DriverManager.getConnection(url, userName, password);    
17.    }    
18.  
19.    public void fetch() throws SQLException, IOException    
20.    {    
21.        PreparedStatement ps = con.prepareStatement("select SYSDATE from dual");    
22.        ResultSet rs = ps.executeQuery();    
23.  
24.        while (rs.next())    
25.        {    
26.            // do the thing you do    
27.        }    
28.        rs.close();    
29.        ps.close();    
30.    }    
31.  
32.    public static void main(String[] args)    
33.    {    
34.        OracleJdbcTest test = new OracleJdbcTest();    
35.        test.init();    
36.        test.fetch();    
37.    }    
38.}  

6. 把 Java util.Date 转成 sql.Date 
Java代码 
1.java.util.Date utilDate = new java.util.Date();    
2.java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());  

7. 使用NIO进行快速的文件拷贝 
Java代码 
1.public static void fileCopy( File in, File out )    
2.            throws IOException    
3.    {    
4.        FileChannel inChannel = new FileInputStream( in ).getChannel();    
5.        FileChannel outChannel = new FileOutputStream( out ).getChannel();    
6.        try   
7.        {    
8.//          inChannel.transferTo(0, inChannel.size(), outChannel);      // original -- apparently has trouble copying large files on Windows    
9.  
10.            // magic number for Windows, 64Mb - 32Kb)    
11.            int maxCount = (64 * 1024 * 1024) - (32 * 1024);    
12.            long size = inChannel.size();    
13.            long position = 0;    
14.            while ( position < size )    
15.            {    
16.               position += inChannel.transferTo( position, maxCount, outChannel );    
17.            }    
18.        }    
19.        finally   
20.        {    
21.            if ( inChannel != null )    
22.            {    
23.               inChannel.close();    
24.            }    
25.            if ( outChannel != null )    
26.            {    
27.                outChannel.close();    
28.            }    
29.        }    
30.    }  

8. 创建图片的缩略图 
Java代码 
1.private void createThumbnail(String filename, int thumbWidth, int thumbHeight, int quality, String outFilename)    
2.        throws InterruptedException, FileNotFoundException, IOException    
3.    {    
4.        // load image from filename    
5.        Image image = Toolkit.getDefaultToolkit().getImage(filename);    
6.        MediaTracker mediaTracker = new MediaTracker(new Container());    
7.        mediaTracker.addImage(image, 0);    
8.        mediaTracker.waitForID(0);    
9.        // use this to test for errors at this point: System.out.println(mediaTracker.isErrorAny());    
10.  
11.        // determine thumbnail size from WIDTH and HEIGHT    
12.        double thumbRatio = (double)thumbWidth / (double)thumbHeight;    
13.        int imageWidth = image.getWidth(null);    
14.        int imageHeight = image.getHeight(null);    
15.        double imageRatio = (double)imageWidth / (double)imageHeight;    
16.        if (thumbRatio < imageRatio) {    
17.            thumbHeight = (int)(thumbWidth / imageRatio);    
18.        } else {    
19.            thumbWidth = (int)(thumbHeight * imageRatio);    
20.        }    
21.  
22.        // draw original image to thumbnail image object and    
23.        // scale it to the new size on-the-fly    
24.        BufferedImage thumbImage = new BufferedImage(thumbWidth, thumbHeight, BufferedImage.TYPE_INT_RGB);    
25.        Graphics2D graphics2D = thumbImage.createGraphics();    
26.        graphics2D.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);    
27.        graphics2D.drawImage(image, 0, 0, thumbWidth, thumbHeight, null);    
28.  
29.        // save thumbnail image to outFilename    
30.        BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(outFilename));    
31.        JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(out);    
32.        JPEGEncodeParam param = encoder.getDefaultJPEGEncodeParam(thumbImage);    
33.        quality = Math.max(0, Math.min(quality, 100));    
34.        param.setQuality((float)quality / 100.0f, false);    
35.        encoder.setJPEGEncodeParam(param);    
36.        encoder.encode(thumbImage);    
37.        out.close();    
38.    }  

9. 创建 JSON 格式的数据 

请先阅读这篇文章 了解一些细节, 
并下面这个JAR 文件:json-rpc-1.0.jar (75 kb) 
Java代码 
1.import org.json.JSONObject;    
2....    
3....    
4.JSONObject json = new JSONObject();    
5.json.put("city", "Mumbai");    
6.json.put("country", "India");    
7....    
8.String output = json.toString();    
9....  

10. 使用iText JAR生成PDF 

阅读这篇文章 了解更多细节 
Java代码 
1.import java.io.File;    
2.import java.io.FileOutputStream;    
3.import java.io.OutputStream;    
4.import java.util.Date;    
5.  
6.import com.lowagie.text.Document;    
7.import com.lowagie.text.Paragraph;    
8.import com.lowagie.text.pdf.PdfWriter;    
9.  
10.public class GeneratePDF {    
11.  
12.    public static void main(String[] args) {    
13.        try {    
14.            OutputStream file = new FileOutputStream(new File("C:\\Test.pdf"));    
15.  
16.            Document document = new Document();    
17.            PdfWriter.getInstance(document, file);    
18.            document.open();    
19.            document.add(new Paragraph("Hello Kiran"));    
20.            document.add(new Paragraph(new Date().toString()));    
21.  
22.            document.close();    
23.            file.close();    
24.  
25.        } catch (Exception e) {    
26.  
27.            e.printStackTrace();    
28.        }    
29.    }    
30.}  

11. HTTP 代理设置 

阅读这篇 文章 了解更多细节。 
Java代码 
1.System.getProperties().put("http.proxyHost", "someProxyURL");    
2.System.getProperties().put("http.proxyPort", "someProxyPort");    
3.System.getProperties().put("http.proxyUser", "someUserName");    
4.System.getProperties().put("http.proxyPassword", "somePassword");  

12. 单实例Singleton 示例 

请先阅读这篇文章 了解更多信息 
Java代码 
1.public class SimpleSingleton {    
2.    private static SimpleSingleton singleInstance =  new SimpleSingleton();    
3.  
4.    //Marking default constructor private    
5.    //to avoid direct instantiation.    
6.    private SimpleSingleton() {    
7.    }    
8.  
9.    //Get instance for class SimpleSingleton    
10.    public static SimpleSingleton getInstance() {    
11.  
12.        return singleInstance;    
13.    }    
14.}  

另一种实现 
Java代码 
1.public enum SimpleSingleton {    
2.    INSTANCE;    
3.    public void doSomething() {    
4.    }    
5.}    
6.  
7.//Call the method from Singleton:    
8.SimpleSingleton.INSTANCE.doSomething();  

13. 抓屏程序 

阅读这篇文章 获得更多信息。 
Java代码 
1.import java.awt.Dimension;    
2.import java.awt.Rectangle;    
3.import java.awt.Robot;    
4.import java.awt.Toolkit;    
5.import java.awt.image.BufferedImage;    
6.import javax.imageio.ImageIO;    
7.import java.io.File;    
8.  
9....    
10.  
11.public void captureScreen(String fileName) throws Exception {    
12.  
13.   Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();    
14.   Rectangle screenRectangle = new Rectangle(screenSize);    
15.   Robot robot = new Robot();    
16.   BufferedImage image = robot.createScreenCapture(screenRectangle);    
17.   ImageIO.write(image, "png", new File(fileName));    
18.  
19.}    
20....  

14. 列出文件和目录 
Java代码 
1.File dir = new File("directoryName");    
2.  String[] children = dir.list();    
3.  if (children == null) {    
4.      // Either dir does not exist or is not a directory    
5.  } else {    
6.      for (int i=0; i < children.length; i++) {    
7.          // Get filename of file or directory    
8.          String filename = children[i];    
9.      }    
10.  }    
11.  
12.  // It is also possible to filter the list of returned files.    
13.  // This example does not return any files that start with `.'.    
14.  FilenameFilter filter = new FilenameFilter() {    
15.      public boolean accept(File dir, String name) {    
16.          return !name.startsWith(".");    
17.      }    
18.  };    
19.  children = dir.list(filter);    
20.  
21.  // The list of files can also be retrieved as File objects    
22.  File[] files = dir.listFiles();    
23.  
24.  // This filter only returns directories    
25.  FileFilter fileFilter = new FileFilter() {    
26.      public boolean accept(File file) {    
27.          return file.isDirectory();    
28.      }    
29.  };    
30.  files = dir.listFiles(fileFilter);  

15. 创建ZIP和JAR文件 
Java代码 
1.import java.util.zip.*;    
2.import java.io.*;    
3.  
4.public class ZipIt {    
5.    public static void main(String args[]) throws IOException {    
6.        if (args.length < 2) {    
7.            System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");    
8.            System.exit(-1);    
9.        }    
10.        File zipFile = new File(args[0]);    
11.        if (zipFile.exists()) {    
12.            System.err.println("Zip file already exists, please try another");    
13.            System.exit(-2);    
14.        }    
15.        FileOutputStream fos = new FileOutputStream(zipFile);    
16.        ZipOutputStream zos = new ZipOutputStream(fos);    
17.        int bytesRead;    
18.        byte[] buffer = new byte[1024];    
19.        CRC32 crc = new CRC32();    
20.        for (int i=1, n=args.length; i < n; i++) {    
21.            String name = args[i];    
22.            File file = new File(name);    
23.            if (!file.exists()) {    
24.                System.err.println("Skipping: " + name);    
25.                continue;    
26.            }    
27.            BufferedInputStream bis = new BufferedInputStream(    
28.                new FileInputStream(file));    
29.            crc.reset();    
30.            while ((bytesRead = bis.read(buffer)) != -1) {    
31.                crc.update(buffer, 0, bytesRead);    
32.            }    
33.            bis.close();    
34.            // Reset to beginning of input stream    
35.            bis = new BufferedInputStream(    
36.                new FileInputStream(file));    
37.            ZipEntry entry = new ZipEntry(name);    
38.            entry.setMethod(ZipEntry.STORED);    
39.            entry.setCompressedSize(file.length());    
40.            entry.setSize(file.length());    
41.            entry.setCrc(crc.getValue());    
42.            zos.putNextEntry(entry);    
43.            while ((bytesRead = bis.read(buffer)) != -1) {    
44.                zos.write(buffer, 0, bytesRead);    
45.            }    
46.            bis.close();    
47.        }    
48.        zos.close();    
49.    }    
50.}  

16. 解析/读取XML 文件 

XML文件 
代码 
1.<?xml version="1.0"?>   
2.<students>   
3.    <student>   
4.        <name>John</name>   
5.        <grade>B</grade>   
6.        <age>12</age>   
7.    </student>   
8.    <student>   
9.        <name>Mary</name>   
10.        <grade>A</grade>   
11.        <age>11</age>   
12.    </student>   
13.    <student>   
14.        <name>Simon</name>   
15.        <grade>A</grade>   
16.        <age>18</age>   
17.    </student>   
18.</students>  

Java代码 
1.package net.viralpatel.java.xmlparser;    
2.  
3.import java.io.File;    
4.import javax.xml.parsers.DocumentBuilder;    
5.import javax.xml.parsers.DocumentBuilderFactory;    
6.  
7.import org.w3c.dom.Document;    
8.import org.w3c.dom.Element;    
9.import org.w3c.dom.Node;    
10.import org.w3c.dom.NodeList;    
11.  
12.public class XMLParser {    
13.  
14.    public void getAllUserNames(String fileName) {    
15.        try {    
16.            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();    
17.            DocumentBuilder db = dbf.newDocumentBuilder();    
18.            File file = new File(fileName);    
19.            if (file.exists()) {    
20.                Document doc = db.parse(file);    
21.                Element docEle = doc.getDocumentElement();    
22.  
23.                // Print root element of the document    
24.                System.out.println("Root element of the document: "   
25.                        + docEle.getNodeName());    
26.  
27.                NodeList studentList = docEle.getElementsByTagName("student");    
28.  
29.                // Print total student elements in document    
30.                System.out    
31.                        .println("Total students: " + studentList.getLength());    
32.  
33.                if (studentList != null && studentList.getLength() > 0) {    
34.                    for (int i = 0; i < studentList.getLength(); i++) {    
35.  
36.                        Node node = studentList.item(i);    
37.  
38.                        if (node.getNodeType() == Node.ELEMENT_NODE) {    
39.  
40.                            System.out    
41.                                    .println("=====================");    
42.  
43.                            Element e = (Element) node;    
44.                            NodeList nodeList = e.getElementsByTagName("name");    
45.                            System.out.println("Name: "   
46.                                    + nodeList.item(0).getChildNodes().item(0)    
47.                                            .getNodeValue());    
48.  
49.                            nodeList = e.getElementsByTagName("grade");    
50.                            System.out.println("Grade: "   
51.                                    + nodeList.item(0).getChildNodes().item(0)    
52.                                            .getNodeValue());    
53.  
54.                            nodeList = e.getElementsByTagName("age");    
55.                            System.out.println("Age: "   
56.                                    + nodeList.item(0).getChildNodes().item(0)    
57.                                            .getNodeValue());    
58.                        }    
59.                    }    
60.                } else {    
61.                    System.exit(1);    
62.                }    
63.            }    
64.        } catch (Exception e) {    
65.            System.out.println(e);    
66.        }    
67.    }    
68.    public static void main(String[] args) {    
69.  
70.        XMLParser parser = new XMLParser();    
71.        parser.getAllUserNames("c:\\test.xml");    
72.    }    
73.}  

17. 把 Array 转换成 Map 
Java代码 
1.import java.util.Map;    
2.import org.apache.commons.lang.ArrayUtils;    
3.  
4.public class Main {    
5.  
6.  public static void main(String[] args) {    
7.    String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },    
8.        { "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };    
9.  
10.    Map countryCapitals = ArrayUtils.toMap(countries);    
11.  
12.    System.out.println("Capital of Japan is " + countryCapitals.get("Japan"));    
13.    System.out.println("Capital of France is " + countryCapitals.get("France"));    
14.  }    
15.}  

18. 发送邮件 
Java代码 
1.import javax.mail.*;    
2.import javax.mail.internet.*;    
3.import java.util.*;    
4.  
5.public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException    
6.{    
7.    boolean debug = false;    
8.  
9.     //Set the host smtp address    
10.     Properties props = new Properties();    
11.     props.put("mail.smtp.host", "smtp.example.com");    
12.  
13.    // create some properties and get the default Session    
14.    Session session = Session.getDefaultInstance(props, null);    
15.    session.setDebug(debug);    
16.  
17.    // create a message    
18.    Message msg = new MimeMessage(session);    
19.  
20.    // set the from and to address    
21.    InternetAddress addressFrom = new InternetAddress(from);    
22.    msg.setFrom(addressFrom);    
23.  
24.    InternetAddress[] addressTo = new InternetAddress[recipients.length];    
25.    for (int i = 0; i < recipients.length; i++)    
26.    {    
27.        addressTo[i] = new InternetAddress(recipients[i]);    
28.    }    
29.    msg.setRecipients(Message.RecipientType.TO, addressTo);    
30.  
31.    // Optional : You can also set your custom headers in the Email if you Want    
32.    msg.addHeader("MyHeaderName", "myHeaderValue");    
33.  
34.    // Setting the Subject and Content Type    
35.    msg.setSubject(subject);    
36.    msg.setContent(message, "text/plain");    
37.    Transport.send(msg);    
38.}  

19. 发送代数据的HTTP 请求 
Java代码 
1.import java.io.BufferedReader;    
2.import java.io.InputStreamReader;    
3.import java.net.URL;    
4.  
5.public class Main {    
6.    public static void main(String[] args)  {    
7.        try {    
8.            URL my_url = new URL("http://coolshell.cn/");    
9.            BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));    
10.            String strTemp = "";    
11.            while(null != (strTemp = br.readLine())){    
12.            System.out.println(strTemp);    
13.        }    
14.        } catch (Exception ex) {    
15.            ex.printStackTrace();    
16.        }    
17.    }    
18.}  

20. 改变数组的大小 
Java代码 
1./**  
2.* Reallocates an array with a new size, and copies the contents  
3.* of the old array to the new array.  
4.* @param oldArray  the old array, to be reallocated.  
5.* @param newSize   the new array size.  
6.* @return          A new array with the same contents.  
7.*/   
8.private static Object resizeArray (Object oldArray, int newSize) {    
9.   int oldSize = java.lang.reflect.Array.getLength(oldArray);    
10.   Class elementType = oldArray.getClass().getComponentType();    
11.   Object newArray = java.lang.reflect.Array.newInstance(    
12.         elementType,newSize);    
13.   int preserveLength = Math.min(oldSize,newSize);    
14.   if (preserveLength > 0)    
15.      System.arraycopy (oldArray,0,newArray,0,preserveLength);    
16.   return newArray;    
17.}    
18.  
19.// Test routine for resizeArray().    
20.public static void main (String[] args) {    
21.   int[] a = {1,2,3};    
22.   a = (int[])resizeArray(a,5);    
23.   a[3] = 4;    
24.   a[4] = 5;    
25.   for (int i=0; i<a.length; i++)    
26.      System.out.println (a[i]);    
27.}  

猜你喜欢

转载自monsterdoctor.iteye.com/blog/2397196
今日推荐