当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
计算机二级辅导:20个非常有用的Java程序片段(2)
发布时间:2010/3/13 9:29:05 来源:城市学习网 编辑:MOON
  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
  nameJohn/name
  gradeB/grade
  age12/age
  /student
  student
  nameMary/name
  gradeA/grade
  age11/age
  /student
  student
  nameSimon/name
  gradeA/grade
  age18/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 = 4;
  a = 5;
  for (int i=0; ia.length; i++)
  System.out.println (a[i]);
  }
  :
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved