20非常有用的Java程序片段(16-18)

16. 解析/讀取XML 文件

XML文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?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代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
packagenet.viralpatel.java.xmlparser;  
importjava.io.File;  
importjavax.xml.parsers.DocumentBuilder;  
importjavax.xml.parsers.DocumentBuilderFactory;  
importorg.w3c.dom.Document;  
importorg.w3c.dom.Element;  
importorg.w3c.dom.Node;  
importorg.w3c.dom.NodeList;  
publicclassXMLParser {  
publicvoidgetAllUserNames(String fileName) {  
try{  
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();  
DocumentBuilder db = dbf.newDocumentBuilder();  
File file = newFile(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(inti = 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);  
}  
}  
publicstaticvoidmain(String[] args) {  
XMLParser parser = newXMLParser();  
parser.getAllUserNames("c:\\test.xml");  
}  
}

17. 把 Array 轉換成 Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importjava.util.Map;  
importorg.apache.commons.lang.ArrayUtils;  
publicclassMain {  
publicstaticvoidmain(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. 發送郵件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
importjavax.mail.*;  
importjavax.mail.internet.*;  
importjava.util.*;  
publicvoidpostMail( String recipients[ ], String subject, String message , String from) throwsMessagingException  
{  
booleandebug = false;  
//Set the host smtp address  
Properties props = newProperties();  
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 = newMimeMessage(session);  
// set the from and to address  
InternetAddress addressFrom = newInternetAddress(from);  
msg.setFrom(addressFrom);  
InternetAddress[] addressTo = newInternetAddress[recipients.length];  
for(inti = 0; i < recipients.length; i++)  
{  
addressTo[i] = newInternetAddress(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);  
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章