天天看點

20個開發人員非常有用的Java功能代碼(二)

11. 在Java上的HTTP代理設定

System.getProperties().put("http.proxyHost", "someProxyURL");  

System.getProperties().put("http.proxyPort", "someProxyPort");  

System.getProperties().put("http.proxyUser", "someUserName");  

System.getProperties().put("http.proxyPassword", "somePassword"); 

System.getProperties().put("http.proxyHost", "someProxyURL");

System.getProperties().put("http.proxyPort", "someProxyPort");

System.getProperties().put("http.proxyUser", "someUserName");

System.getProperties().put("http.proxyPassword", "somePassword");

12. Java Singleton 例子

Read this article for more details.

Update: Thanks Markus for the comment. I have updated the code and changed it to

more robust implementation.

public class SimpleSingleton {  

private static SimpleSingleton singleInstance =  new SimpleSingleton();  

//Marking default constructor private  

//to avoid direct instantiation.  

private SimpleSingleton() {  

}  

//Get instance for class SimpleSingleton  

public static SimpleSingleton getInstance() {  

return singleInstance;  

public class SimpleSingleton {

private static SimpleSingleton singleInstance =  new SimpleSingleton();

//Marking default constructor private

//to avoid direct instantiation.

private SimpleSingleton() {

}

//Get instance for class SimpleSingleton

public static SimpleSingleton getInstance() {

return singleInstance;

One more implementation of Singleton class. Thanks to Ralph and Lukasz Zielinski

for pointing this out.

public enum SimpleSingleton {  

INSTANCE;  

public void doSomething() {  

//Call the method from Singleton:  

SimpleSingleton.INSTANCE.doSomething(); 

public enum SimpleSingleton {

INSTANCE;

public void doSomething() {

//Call the method from Singleton:

SimpleSingleton.INSTANCE.doSomething();

13. 在Java上做螢幕截圖

import java.awt.Dimension;  

import java.awt.Rectangle;  

import java.awt.Robot;  

import java.awt.Toolkit;  

import java.awt.image.BufferedImage;  

import javax.imageio.ImageIO;  

import java.io.File;  

...  

public void captureScreen(String fileName) throws Exception {  

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();  

Rectangle screenRectangle = new Rectangle(screenSize);  

Robot robot = new Robot();  

BufferedImage image = robot.createScreenCapture(screenRectangle);  

ImageIO.write(image, "png", new File(fileName));  

... 

import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

import java.io.File;

...

public void captureScreen(String fileName) throws Exception {

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();

Rectangle screenRectangle = new Rectangle(screenSize);

Robot robot = new Robot();

BufferedImage image = robot.createScreenCapture(screenRectangle);

ImageIO.write(image, "png", new File(fileName));

14. 在Java中的檔案,目錄清單

>File dir = new File("directoryName");  

String[] children = dir.list();  

if (children == null) {  

// Either dir does not exist or is not a directory  

} else {  

for (int i=0; i < children.length; i++) {  

// Get filename of file or directory  

String filename = children;  

// It is also possible to filter the list of returned files.  

// This example does not return any files that start with `.'.  

FilenameFilter filter = new FilenameFilter() {  

public boolean accept(File dir, String name) {  

return !name.startsWith(".");  

};  

children = dir.list(filter);  

// The list of files can also be retrieved as File objects  

File[] files = dir.listFiles();  

// This filter only returns directories  

FileFilter fileFilter = new FileFilter() {  

public boolean accept(File file) {  

return file.isDirectory();  

files = dir.listFiles(fileFilter); 

File dir = new File("directoryName");

String[] children = dir.list();

if (children == null) {

// Either dir does not exist or is not a directory

} else {

for (int i=0; i < children.length; i++) {

// Get filename of file or directory

String filename = children;

// It is also possible to filter the list of returned files.

// This example does not return any files that start with `.'.

FilenameFilter filter = new FilenameFilter() {

public boolean accept(File dir, String name) {

return !name.startsWith(".");

};

children = dir.list(filter);

// The list of files can also be retrieved as File objects

File[] files = dir.listFiles();

// This filter only returns directories

FileFilter fileFilter = new FileFilter() {

public boolean accept(File file) {

return file.isDirectory();

files = dir.listFiles(fileFilter);

 15. 在Java中建立ZIP和JAR檔案

import java.util.zip.*;  

import java.io.*;  

public class ZipIt {  

public static void main(String args[]) throws IOException {  

if (args.length < 2) {  

System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");  

System.exit(-1);  

File zipFile = new File(args[0]);  

if (zipFile.exists()) {  

System.err.println("Zip file already exists, please try another");  

System.exit(-2);  

FileOutputStream fos = new FileOutputStream(zipFile);  

ZipOutputStream zos = new ZipOutputStream(fos);  

int bytesRead;  

byte[] buffer = new byte[1024];  

CRC32 crc = new CRC32();  

for (int i=1, n=args.length; i < n; i++) {  

String name = args;  

File file = new File(name);  

if (!file.exists()) {  

   System.err.println("Skipping: " + name);  

   continue;  

BufferedInputStream bis = new BufferedInputStream(  

   new FileInputStream(file));  

crc.reset();  

while ((bytesRead = bis.read(buffer)) != -1) {  

   crc.update(buffer, 0, bytesRead);  

bis.close();  

// Reset to beginning of input stream  

bis = new BufferedInputStream(  

ZipEntry entry = new ZipEntry(name);  

entry.setMethod(ZipEntry.STORED);  

entry.setCompressedSize(file.length());  

entry.setSize(file.length());  

entry.setCrc(crc.getValue());  

zos.putNextEntry(entry);  

   zos.write(buffer, 0, bytesRead);  

zos.close();  

import java.util.zip.*;

import java.io.*;

public class ZipIt {

public static void main(String args[]) throws IOException {

if (args.length < 2) {

System.err.println("usage: java ZipIt Zip.zip file1 file2 file3");

System.exit(-1);

File zipFile = new File(args[0]);

if (zipFile.exists()) {

System.err.println("Zip file already exists, please try another");

System.exit(-2);

FileOutputStream fos = new FileOutputStream(zipFile);

ZipOutputStream zos = new ZipOutputStream(fos);

int bytesRead;

byte[] buffer = new byte[1024];

CRC32 crc = new CRC32();

for (int i=1, n=args.length; i < n; i++) {

String name = args;

File file = new File(name);

if (!file.exists()) {

   System.err.println("Skipping: " + name);

    continue;

BufferedInputStream bis = new BufferedInputStream(

   new FileInputStream(file));

crc.reset();

while ((bytesRead = bis.read(buffer)) != -1) {

   crc.update(buffer, 0, bytesRead);

bis.close();

// Reset to beginning of input stream

bis = new BufferedInputStream(

ZipEntry entry = new ZipEntry(name);

entry.setMethod(ZipEntry.STORED);

  entry.setCompressedSize(file.length());

entry.setSize(file.length());

entry.setCrc(crc.getValue());

zos.putNextEntry(entry);

   zos.write(buffer, 0, bytesRead);

zos.close();

Sample XML file.

John 

12 

Mary 

11 

Simon 

18 

John

B

12

Mary

A

<AGE>11

Simon

18

Java code to parse above XML.

package net.viralpatel.java.xmlparser;  

import javax.xml.parsers.DocumentBuilder;  

import javax.xml.parsers.DocumentBuilderFactory;  

import org.w3c.dom.Document;  

import org.w3c.dom.Element;  

import org.w3c.dom.Node;  

import org.w3c.dom.NodeList;  

public class XMLParser {  

public void getAllUserNames(String fileName) {  

try {  

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  

DocumentBuilder db = dbf.newDocumentBuilder();  

File file = new File(fileName);  

if (file.exists()) {  

   Document doc = db.parse(file);  

   Element docEle = doc.getDocumentElement();  

   // Print root element of the document  

   System.out.println("Root element of the document: " 

           + docEle.getNodeName());  

   NodeList studentList = docEle.getElementsByTagName("student");  

   // Print total student elements in document  

   System.out  

           .println("Total students: " + studentList.getLength());  

   if (studentList != null && studentList.getLength() > 0) {  

       for (int i = 0; i < studentList.getLength(); i++) {  

           Node node = studentList.item(i);  

           if (node.getNodeType() == Node.ELEMENT_NODE) {  

               System.out  

                       .println("=====================");  

               Element e = (Element) node;  

               NodeList nodeList = e.getElementsByTagName("name");  

               System.out.println("Name: " 

                       + nodeList.item(0).getChildNodes().item(0)  

                            ;   .getNodeValue());  

               nodeList = e.getElementsByTagName("grade");  

               System.out.println("Grade: " 

               nodeList = e.getElementsByTagName("age");  

               System.out.println("Age: " 

           }  

       }  

   } else {  

       System.exit(1);  

   }  

} catch (Exception e) {  

System.out.println(e);  

public static void main(String[] args) {  

XMLParser parser = new XMLParser();  

parser.getAllUserNames("c:\\test.xml");  

package net.viralpatel.java.xmlparser;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.w3c.dom.Document;

import org.w3c.dom.Element;

import org.w3c.dom.Node;

import org.w3c.dom.NodeList;

public class XMLParser {

public void getAllUserNames(String fileName) {

try {

DocumentBuilderFactory dbf =

DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

File file = new File(fileName);

if (file.exists()) {

Document doc = db.parse(file);

Element docEle = doc.getDocumentElement();

// Print root element of the document

System.out.println("Root element of the document: "

+ docEle.getNodeName());

NodeList studentList = docEle.getElementsByTagName

("student");

// Print total student elements in document

System.out

 .println("Total students: " +

studentList.getLength());

if (studentList != null && studentList.getLength()

> 0) {

for (int i = 0; i < studentList.getLength

(); i++) {

Node node = studentList.item(i);

if (node.getNodeType() ==

Node.ELEMENT_NODE) {

     .println

("=====================");

Element e = (Element) node;

NodeList nodeList =

e.getElementsByTagName("name");

System.out.println("Name: "

+

nodeList.item(0).getChildNodes().item(0)

.getNodeValue());

nodeList =

e.getElementsByTagName("grade");

System.out.println("Grade:

"

e.getElementsByTagName("age");

System.out.println("Age: "

System.exit(1);

} catch (Exception e) {

System.out.println(e);

public static void main(String[] args) {

XMLParser parser = new XMLParser();

parser.getAllUserNames("c:\\test.xml");

17. Convert Array to Map in Java

import java.util.Map;  

import org.apache.commons.lang.ArrayUtils;  

public class Main {  

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"));  

import java.util.Map;

import org.apache.commons.lang.ArrayUtils;

public class Main {

"London" },

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"));

18. Send Email using Java

import javax.mail.*;  

import javax.mail.internet.*;  

import java.util.*;  

public void postMail( String recipients[ ], String subject, String message , String

from) throws MessagingException  

{  

boolean debug = false;  

//Set the host smtp address  

Properties props = new Properties();  

props.put("mail.smtp.host", "smtp.example.com");  

// create some properties and get the default Session  

Session session = Session.getDefaultInstance(props, null);  

session.setDebug(debug);  

// create a message  

Message msg = new MimeMessage(session);  

// set the from and to address  

InternetAddress addressFrom = new InternetAddress(from);  

msg.setFrom(addressFrom);  

InternetAddress[] addressTo = new InternetAddress[recipients.length];  

for (int i = 0; i < recipients.length; i++)  

addressTo = new InternetAddress(recipients);  

msg.setRecipients(Message.RecipientType.TO, addressTo);  

// Optional : You can also set your custom headers in the Email if you Want  

msg.addHeader("MyHeaderName", "myHeaderValue");  

// Setting the Subject and Content Type  

msg.setSubject(subject);  

msg.setContent(message, "text/plain");  

Transport.send(msg);  

import javax.mail.*;

import javax.mail.internet.*;

import java.util.*;

from) throws MessagingException

{

boolean debug = false;

//Set the host smtp address

Properties props = new Properties();

props.put("mail.smtp.host", "smtp.example.com");

// create some properties and get the default Session

Session session = Session.getDefaultInstance(props, null);

session.setDebug(debug);

// create a message

Message msg = new MimeMessage(session);

// set the from and to address

InternetAddress addressFrom = new InternetAddress(from);

msg.setFrom(addressFrom);

InternetAddress[] addressTo = new InternetAddress[recipients.length];

for (int i = 0; i < recipients.length; i++)

addressTo = new InternetAddress(recipients);

msg.setRecipients(Message.RecipientType.TO, addressTo);

// Optional : You can also set your custom headers in the Email if you Want

msg.addHeader("MyHeaderName", "myHeaderValue");

// Setting the Subject and Content Type

msg.setSubject(subject);

msg.setContent(message, "text/plain");

Transport.send(msg);

import java.io.BufferedReader;  

import java.io.InputStreamReader;  

import java.net.URL;  

public static void main(String[] args)  {  

BufferedReader br = new BufferedReader(new InputStreamReader

(my_url.openStream()));  

String strTemp = "";  

while(null != (strTemp = br.readLine())){  

System.out.println(strTemp);  

} catch (Exception ex) {  

ex.printStackTrace();  

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.URL;

public static void main(String[] args)  {

   BufferedReader br = new BufferedReader(new

InputStreamReader(my_url.openStream()));

String strTemp = "";

while(null != (strTemp = br.readLine())){

System.out.println(strTemp);

} catch (Exception ex) {

ex.printStackTrace();

20. Resize an Array in Java

/** 

* 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 ldSize = 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

16. 在Java中解析/讀取XML檔案

view plaincopy to clipboardprint?

<?xml version="1.0"?> 

<students> 

<student> 

<name>John</name> 

<grade>B</grade> 

<age>12</age> 

</student> 

<name>Mary</name> 

<grade>A</grade> 

<age>11</age> 

<name>Simon</name> 

<age>18</age> 

</students> 

<?xml version="1.0"?>

<students>

<student>

<name>John</name>

<grade>B</grade>

<age>12</age>

</student>

<name>Mary</name>

<grade>A</grade>

<age>11</age>

<name>Simon</name>

<age>18</age>

</students>

Document doc = db.parse(file);  

Element docEle = doc.getDocumentElement();  

// Print root element of the document  

System.out.println("Root element of the document: " 

+ docEle.getNodeName());  

NodeList studentList = docEle.getElementsByTagName("student");  

// Print total student elements in document  

System.out  

.println("Total students: " + studentList.getLength());  

if (studentList != null && studentList.getLength() > 0) {  

for (int i = 0; i < studentList.getLength(); i++) {  

Node node = studentList.item(i);  

if (node.getNodeType() == Node.ELEMENT_NODE) {  

.println("=====================");  

Element e = (Element) node;  

NodeList nodeList = e.getElementsByTagName("name");  

System.out.println("Name: " 

+ nodeList.item(0).getChildNodes().item(0)  

.getNodeValue());  

nodeList = e.getElementsByTagName("grade");  

System.out.println("Grade: " 

nodeList = e.getElementsByTagName("age");  

System.out.println("Age: " 

System.exit(1);  

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

NodeList studentList = docEle.getElementsByTagName("student");

.println("Total students: " + studentList.getLength());

if (studentList != null && studentList.getLength() > 0) {

for (int i = 0; i < studentList.getLength(); i++) {

if (node.getNodeType() == Node.ELEMENT_NODE) {

.println("=====================");

NodeList nodeList = e.getElementsByTagName("name");

+ nodeList.item(0).getChildNodes().item(0)

nodeList = e.getElementsByTagName("grade");

System.out.println("Grade: "

nodeList = e.getElementsByTagName("age");

17. 在Java中将Array轉換成Map

String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },  

{ "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };  

String[][] countries = { { "United States", "New York" }, { "United Kingdom", "London" },

{ "Netherland", "Amsterdam" }, { "Japan", "Tokyo" }, { "France", "Paris" } };

18. 在Java中發送電子郵件

public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException  

public void postMail( String recipients[ ], String subject, String message , String from) throws MessagingException

19. 使用Java發送HTTP請求和提取資料

BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));  

BufferedReader br = new BufferedReader(new InputStreamReader(my_url.openStream()));

20. 在Java中調整數組

for (int i=0; i<a.length; i++)  

System.out.println (a);  

     本文轉自My_King1 51CTO部落格,原文連結:http://blog.51cto.com/apprentice/1360616,如需轉載請自行聯系原作者