15. 创建ZIP和JAR文件

  1. import java.util.zip.*;  

  2. import java.io.*;  

  3. publicclass ZipIt {  

  4. publicstaticvoid main(String args[]) throws IOException {  

  5. if (args.length < 2) {  

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

  7.            System.exit(-1);  

  8.        }  

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

  10. if (zipFile.exists()) {  

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

  12.            System.exit(-2);  

  13.        }  

  14.        FileOutputStream fos = new FileOutputStream(zipFile);  

  15.        ZipOutputStream zos = new ZipOutputStream(fos);  

  16. int bytesRead;  

  17. byte[] buffer = newbyte[1024];  

  18.        CRC32 crc = new CRC32();  

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

  20.            String name = args[i];  

  21.            File file = new File(name);  

  22. if (!file.exists()) {  

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

  24. continue;  

  25.            }  

  26.            BufferedInputStream bis = new BufferedInputStream(  

  27. new FileInputStream(file));  

  28.            crc.reset();  

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

  30.                crc.update(buffer, 0, bytesRead);  

  31.            }  

  32.            bis.close();  

  33. // Reset to beginning of input stream  

  34.            bis = new BufferedInputStream(  

  35. new FileInputStream(file));  

  36.            ZipEntry entry = new ZipEntry(name);  

  37.            entry.setMethod(ZipEntry.STORED);  

  38.            entry.setCompressedSize(file.length());  

  39.            entry.setSize(file.length());  

  40.            entry.setCrc(crc.getValue());  

  41.            zos.putNextEntry(entry);  

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

  43.                zos.write(buffer, 0, bytesRead);  

  44.            }  

  45.            bis.close();  

  46.        }  

  47.        zos.close();  

  48.    }  

  49. }  

16. 解析/读取XML 文件

XML文件

  1. <?xmlversion="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. ackage net.viralpatel.java.xmlparser;  

  2. import java.io.File;  

  3. import javax.xml.parsers.DocumentBuilder;  

  4. import javax.xml.parsers.DocumentBuilderFactory;  

  5. import org.w3c.dom.Document;  

  6. import org.w3c.dom.Element;  

  7. import org.w3c.dom.Node;  

  8. import org.w3c.dom.NodeList;  

  9. publicclass XMLParser {  

  10. publicvoid getAllUserNames(String fileName) {  

  11. try {  

  12.            DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  

  13.            DocumentBuilder db = dbf.newDocumentBuilder();  

  14.            File file = new File(fileName);  

  15. if (file.exists()) {  

  16.                Document doc = db.parse(file);  

  17.                Element docEle = doc.getDocumentElement();  

  18. // Print root element of the document  

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

  20.                        + docEle.getNodeName());  

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

  22. // Print total student elements in document  

  23.                System.out  

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

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

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

  27.                        Node node = studentList.item(i);  

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

  29.                            System.out  

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

  31.                            Element e = (Element) node;  

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

  33.                            System.out.println("Name: "

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

  35.                                            .getNodeValue());  

  36.                            nodeList = e.getElementsByTagName("grade");  

  37.                            System.out.println("Grade: "

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

  39.                                            .getNodeValue());  

  40.                            nodeList = e.getElementsByTagName("age");  

  41.                            System.out.println("Age: "

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

  43.                                            .getNodeValue());  

  44.                        }  

  45.                    }  

  46.                } else {  

  47.                    System.exit(1);  

  48.                }  

  49.            }  

  50.        } catch (Exception e) {  

  51.            System.out.println(e);  

  52.        }  

  53.    }  

  54. publicstaticvoid main(String[] args) {  

  55.        XMLParser parser = new XMLParser();  

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

  57.    }  

  58. }