DatagramSocket
DatagramPacket
package com.Inet.android;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Mysend {
public static void main(String[] args) {
try {
DatagramSocket send=new DatagramSocket();
DatagramSocket receiveToSend=new DatagramSocket(8088);
while(true){
//发送
Scanner input=new Scanner(System.in);
String s=input.next();
byte[]array=s.getBytes();
//构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
DatagramPacket packet =new DatagramPacket(array, 0, array.length, InetAddress.getByName("192.168.0.64"), 8080);
System.out.println("");
send.send(packet);
//接受
//创建数据报套接字并将其绑定到本地主机上的指定端口
byte[]array1=new byte[1024];
DatagramPacket packet1=new DatagramPacket(array1, 1024);//构造 DatagramPacket,用来接收长度为 length 的数据包
receiveToSend.receive(packet1);//等待接受
byte[]data=packet1.getData();
System.out.println("小红:"+new String(data));
}
} catch (SocketException e) {
e.printStackTrace();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
------------------------------------------------------------
try {
DatagramSocket receive = new DatagramSocket(8080);
DatagramSocket receiveToSend = new DatagramSocket();
while (true) {
// 此段为接受数据
// 创建数据报套接字并将其绑定到本地主机上的指定端口
byte[] array = new byte[1024];
DatagramPacket packet = new DatagramPacket(array, 1024);// 构造
// DatagramPacket,用来接收长度为
// length
// 的数据包
receive.receive(packet);// 等待接受
byte[] data = packet.getData();
System.out.println("小明:" + new String(data));
// 此段为发送数据
Scanner input = new Scanner(System.in);
String s = input.next();
byte[] array1 = s.getBytes();
// 构造数据报包,用来将长度为 length 偏移量为 offset 的包发送到指定主机上的指定端口号。
DatagramPacket packet1 = new DatagramPacket(array1, 0, array1.length,
InetAddress.getByName("192.168.0.64"), 8088);
System.out.println("");
receiveToSend.send(packet1);
}
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
通过URL访问网络资源保存在本地
1保存网页
try {
URL url=new URL("http://www.baidu.com");
InputStream is=url.openStream();
InputStreamReader isr= new InputStreamReader(is);
BufferedReader br=new BufferedReader(isr);
String line=br.readLine();
while (line!=null){
line=br.readLine();
System.out.println(line);
}br.close();
is.close();
isr.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
保存图片
try {
URL url2=new URL("http://pic23.nipic.com/20120909/10911977_203253484196_2.jpg");
File fileimg=new File("f://11.jpg");
if (!fileimg.exists()){
fileimg.createNewFile();
}
OutputStream os=new FileOutputStream(fileimg);
//URL Connection connect=url.open
InputStream is=url2.openStream();//把url2的图片给is输入流(打开图片用openStream)
byte[] array=new byte[1024];//新建数组存放图片 输入流is
int i =is.read(array);//read方法把is 存入array,,存到结尾返回值-1
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 DOM解析
一般用UTF-8不要用RGB和
DOM解析XML1创建解析器工厂对象
2有解析器工厂对象创建解析器对象
3由解析器对象对制定XML文件进行解析,构建相应DOM树,创建Document对象
4以Document对象为起点对DOM树的节点惊醒增删改查操作
package com.DOMTest.android;
import java.io.IOException;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;
public class DOMTest {
public static void main(String[] args) {
//创建DOM解析器的工厂
DocumentBuilderFactory factory= DocumentBuilderFactory.newInstance();
try {
DocumentBuilder builder=factory.newDocumentBuilder();//使用解析器工厂创建解析器
Document document=builder.parse("d:/11.txt");//使用解析器解析文档生成树的document
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 content =next.getFirstChild(); //得到第一个子节点不能为空
if(content!=null){
System.out.println(next.getFirstChild().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解析
package com.SAX.android;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
public class MySAXHander extends DefaultHandler{
boolean isArrive=new String().equals("xcz");
@Override
public void characters(char[] ch, int start, int length) throws SAXException {
super.characters(ch, start, length);
if (isArrive){
System.out.println("查找到"+new String());
}
}
@Override
public void endDocument() throws SAXException {
super.endDocument();
}
@Override
public void endElement(String uri, String localName, String qName) throws SAXException {
super.endElement(uri, localName, qName);
isArrive=false;//标签结束时
}
@Override
public void startDocument() throws SAXException {
super.startDocument();
}
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
super.startElement(uri, localName, qName, attributes);
isArrive=qName.equals("xcz");
System.out.println(localName+"标签开始"+qName);
}
}
--------------------------------------------------
package com.SAX.android;
import java.io.File;
import java.io.IOException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
public class Test {
public static void main(String[] args) {
//从类名称中获取新的 SAXParserFactory 实例。
SAXParserFactory factory=SAXParserFactory.newInstance();
try {
SAXParser parser=factory.newSAXParser();
MySAXHander hander=new MySAXHander();
parser.parse(new File("d:\\11.txt"), hander);
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (SAXException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
JSON解析
package com.JSON.android;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class JSONTest {
public static void main(String[] args) {
String json = creatJSON();
JSONObject obj = JSONObject.fromObject(json);
System.out.println(obj.getString("city"));
JSONObject today = obj.getJSONObject("today");
JSONArray array = today.getJSONArray("index");
for (int i = 0; i < array.size(); i++) {
JSONObject obj1 = array.getJSONObject(1);
System.out.println(obj1.getString("name"));
}
}
private static String creatJSON() {
JSONObject obj = new JSONObject();
obj.put("city", "北京");
obj.put("cityid", "12323");
JSONObject today = new JSONObject();
today.put("data", "2015-8-3");
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();
}
}