开发人员非常有用的Java功能代码(11-20)

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

12.在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));   
		}	   
		...  

13. 在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[i];
			}
		}
		// 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); 

14. 在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[i];   
		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( new FileInputStream(file));   
		ZipEntry entry = new ZipEntry(name);   
		entry.setMethod(ZipEntry.STORED);   
		entry.setCompressedSize(file.length());   
		entry.setSize(file.length());   
		entry.setCrc(crc.getValue());   
		zos.putNextEntry(entry);   


		while ((bytesRead = bis.read(buffer)) != -1) {   
			zos.write(buffer, 0, bytesRead);   
		}
		   
		bis.close();   
		}

		   
		zos.close();   
		}   
		}  

15.在Java中解析/读取XML文件

		<?xml version="1.0"?>  
		<students>  
		<student>  
		<name>John</name>  
		<grade>B</grade>  
		<age>12</age>  
		</student>  
		<student>  
		<name>Mary</name>  
		<grade>A</grade>  
		<age>11</age>  
		</student>  
		<student>  
		<name>Simon</name>  
		<grade>A</grade>  
		<age>18</age>  
		</student>  
		</students>  



		package net.viralpatel.java.xmlparser;   

		import java.io.File;   
		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.item(0).getChildNodes().item(0) .getNodeValue());   
						nodeList = e.getElementsByTagName("age");   
						System.out.println("Age: "+ nodeList.item(0).getChildNodes().item(0).getNodeValue()); 
						}   
					}   
				} 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");
		}
		}  

16. 在Java中将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"));  
		}   
	}  

17. 在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[i] = new InternetAddress(recipients[i]);
	}
	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);
	}

18. 使用Java发送HTTP请求和提取数据

import java.io.BufferedReader;   
import java.io.InputStreamReader;   
import java.net.URL;   

public class Main {   
	public static void main(String[] args)  {   
		try {   
			URL my_url = new URL("http://www.viralpatel.net/blogs/");   
			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();   
				}   
		}   
	}  

19. 在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 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]);}   
	}  


你可能感兴趣的:(java,exception,String,File,buffer,import)