目录
url
网址。例:http://www.baidu.com
/**
* url的测试 将网路上的一张图片写到硬盘中
* @author Administrator
*
*/
public class Test {
public static void main(String[] args) {
urltest();
}
public static void urltest() {
try {
File file = new File("d://tangYan.jpg");
if (!file.exists()) {
file.createNewFile();
}
URL url = new URL("http://f.hiphotos.baidu.com/image/pic/item/5fdf8db1cb1349540cf84bbf534e9258d0094a02.jpg");
InputStream is = url.openStream();
byte[] array = new byte[1024];
OutputStream os = new FileOutputStream(file);
int i = is.read(array);
while (i!=-1) {
os.write(array, 0, i);
i = is.read(array);
}
os.flush();
os.close();
is.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
xml的解析
形式
< a >开始标签
标题 (内容)
< / a >结束标签
可以嵌套
用来传输数据
*解析方式:
DOM解析
(全部读到内存中 大小10M)
DOM 文档对象模型
把XML文映射成一个倒挂的树
·创建解析器工厂对象
·有解析器工厂对象创建解析器对象
·由解析器对象对指定的XML文件进行解析,创建相应的DOM树,创建Document对象
·以Document对象为起点对DOM树的节点进行增删改查操作用的多
//DOM解析测试
public static void DOMtest() {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder = factory.newDocumentBuilder();
Document document = builder.parse("d://11.txt");
NodeList list = document.getElementsByTagName("Weather");// 找到Weather标签
Node node = list.item(0); // 找到第一个Weather标签
Node child = node.getFirstChild(); // 找到Weather下的第一个子标签city
Node next = child.getNextSibling(); // 得到city的下一个标签
while (next != null) { // 判断有没有走到最后一个标签
if (next.getNodeType() == Node.ELEMENT_NODE) { // 判断节点类型是不是ELEMENT_NODE
Node contant = next.getFirstChild(); // 得到该节点的第一个子节点不能为空
if (contant != null) {
System.out.println(contant.getNodeValue().trim());// String类型有一个方法trim去掉前后空格
}
}
next = next.getNextSibling();
}
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
SAX解析
内存消耗小
步骤:
/**
* 继承DefaultHandler类 SAX解析
* 重写五个方法
* 如果找单独的标签内容,需要先定义布尔值,然后当标签为所查标签时,输出打印内容。
* @author Administrator
*
*/
public class MySAXHandler extends DefaultHandler{
private boolean isElement;
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
if (isElement) {
System.out.println("找到啦~~~"+new String(ch,start,length).trim());
}
System.out.println(new String(ch,start,length).trim());
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
System.out.println("解析文档结束");
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
System.out.println("标签结束");
isElement = false;
}
@Override
public void startDocument() throws SAXException {
super.startDocument();
System.out.println("解析文档开始");
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
isElement = qName.equals("city");
System.out.println(localName+"标签开始"+qName);
}
}
//SAX解析测试
public static void SAXTest() {
SAXParserFactory factory = SAXParserFactory.newInstance();//创建SAXParserFactory实例
try {
//创建SAXParser的实例
SAXParser parser = factory.newSAXParser();
//创建SAXHandler类
MySAXHandler handler = new MySAXHandler();
parser.parse(new File("d://11.txt"), handler);
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Json
必然用到
{}(Object)
[](Array)
key:value
/**
* Json必然用到
*/
public static void JsonTest() {
String json = JSONString();
JSONObject object = JSONObject.fromObject(json);
System.out.println(object.get("city"));
JSONObject today = object.getJSONObject("today");
JSONArray array = today.getJSONArray("index");
for (int i = 0; i < array.size(); i++) {
JSONObject obj = array.getJSONObject(i);
System.out.println(obj.getString("name"));
}
}
//自己创建的一个JsonString
public static String JSONString() {
JSONObject obj = new JSONObject();
obj.put("city", "北京");
obj.put("cityid", "123");
JSONObject today = new JSONObject();
today.put("date", "2015-08-03");
today.put("week", "星期一");
JSONArray array = new JSONArray();
JSONObject index1 = new JSONObject();
index1.put("name", "感冒");
JSONObject index2 = new JSONObject();
index2.put("name", "炎热");
JSONObject index3 = new JSONObject();
index3.put("name", "防晒");
array.add(index1);
array.add(index2);
array.add(index3);
today.put("index", array);
obj.put("today", today);
System.out.println(obj.toString());
return obj.toString();
}
结果