欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

20个java常用片段

程序员文章站 2022-05-01 09:21:46
...
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.}