20个必备Java程序片段总结(下)

原创|其它|编辑:郝浩|2009-12-17 11:24:24.000|阅读 527 次

概述:本文中总结了20个非常有价值的Java程序片段。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

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

  15. 创建ZIP和JAR文件

  Java代码

  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();
  }
  }

  16. 解析/读取XML 文件

  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>

  Java代码

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

  17. 把 Array 转换成 Map

  Java代码

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

  18. 发送邮件

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

  19. 发送代数据的HTTP 请求

  Java代码

  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://coolshell.cn/");
  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. 改变数组的大小

  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 
  System.out.println (a[i]);
  }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:网络转载

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP