20非常有用的Java程序片段(3)
15. 創建ZIP和JAR文件
import java.util.zip.*; ?
import java.io.*; ?
publicclass ZipIt { ?
publicstaticvoid 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 = newbyte[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 文件
XML文件
<?xmlversion="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代碼:
ackage 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; ?
publicclass XMLParser { ?
publicvoid 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); ?
? ? ? ?} ?
? ?} ?
publicstaticvoid main(String[] args) { ?
? ? ? ?XMLParser parser = new XMLParser(); ?
? ? ? ?parser.getAllUserNames("c:\\test.xml"); ?
? ?} ?
} ?
轉載于:https://blog.51cto.com/yangxianhong/1222088
總結
以上是生活随笔為你收集整理的20非常有用的Java程序片段(3)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.输入联想
- 下一篇: 屈原坐上神十带来了iOS 7