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)相关推荐
- 20非常有用的Java程序片段(1)
下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = String.valueOf(2); //integer to numeric str ...
- 20非常有用的Java程序片段(11-15)
11. HTTP 代理设置 阅读这篇 文章 了解更多细节. 1 2 3 4 5 System.getProperties().put("http.proxyHost", " ...
- 20个非常有用的Java程序片段
20个非常有用的Java程序片段 来源:码农网 时间:2015-03-17 10:23:28 阅读数:1057 分享到:0 [导读] 下面是20个非常有用的Java程序片段,希望能对你有用.1 ...
- 20个非常有用的Java程序片段--转
原文地址:http://geek.csdn.net/news/detail/236591 下面是20个非常有用的Java程序片段,希望能对你有用. 1. 字符串有整型的相互转换 String a = ...
- java 程序片段_20个非常有用的Java程序片段
1. 字符串有整型的相互转换 Java代码 String a = String.valueOf(2); //integer to numeric string int i = Integer.pa ...
- 应用Java程序片段动态生成表格
通过Jsp页面动态来显示数据库中的数据,在根据条件进行查询时,将调查结果显示在jsp页面中,使用java程序片段(Scriptlet)动态生成表格 在jsp文件中,可以在"<%&quo ...
- 分享非常有用的Java程序(关键代码)(七)---抓屏程序
原文:分享非常有用的Java程序(关键代码)(七)---抓屏程序 import java.awt.Dimension; import java.awt.Rectangle; import java.a ...
- 一种基于DFA算法的敏感词检测JAVA程序片段
本文章提供一种基于DFA算法的敏感词检测JAVA程序片段,如下: 1.构造多叉树数据结构 import org.jetbrains.annotations.NotNull;/*** 多叉树* @aut ...
- 应用Java程序片段动态生成下拉列表
从数据库读取数据是,需要将某些数据动态添加到下拉列表中 在下拉列表的选项中,应用的是Java表达式标记输出的数组元素,Java表达式的标记为"<%="和"%> ...
最新文章
- 谷歌Jeff Dean团队提出利用深度学习对「电子健康记录」数据进行分析,可提高医疗诊断预测的准确性
- pythondistutils安装_python – 与distutils / pip一起安装Bash完成
- wind试用版 matlab,免费产品试用 - MATLAB Simulink
- ★ Learn how you can use Adobe Creative Suite to create skins for Flex and AIR applications.
- 《UTF-8与GB2312之间的互换》的改进
- Systemd 入门教程:命令篇、实战篇
- 1瓦功耗,5GHz频率:全球最快Risc-V芯片出世,效率超越苹果M1
- 关于微信卡券网页跳转链接能力的下线
- LANP源码安装注释版
- 国产化操作系统安装OpenJDK Icedtea插件
- 雅戈尔关于媒体报道出澄清公告 谨防股价变动
- Originpro绘制y轴偏移堆积图无法设置偏移量
- Echarts 双柱状图+折线图合并---实现效果详解(vue+Echarts实现)
- ZYNQ PS部分简介
- 如何用excel搭建数据模型,销售数据管理软件
- vscode向下复制快捷键更改
- 求最大公因数的三种算法及简要说明
- 背包问题 2020年小米校招JAVA岗笔试第二题
- 服务器不稳定补偿,部分服务器网络波动及中都临时维护补偿
- python脚本案例-python脚本范例