国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

android編程之xml文件讀取和寫入方法

2020-04-11 11:37:36
字體:
供稿:網(wǎng)友

本文實(shí)例講述了android編程之xml文件讀取和寫入方法。分享給大家供大家參考。具體分析如下:

一、環(huán)境:

主機(jī):WIN8
開發(fā)環(huán)境:Eclipse

二、說明:

1.打開sd卡中的xml文件,如果不存在,這新建一個(gè),并寫入默認(rèn)配置
2.讀取xml文件

三、xml文件格式:

<?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <title>遠(yuǎn)程視頻會(huì)見系統(tǒng)</title> <local_port>12600</local_port> <schedule_service_ip>10.58.1.59</schedule_service_ip><schedule_service_port>12601</schedule_service_port> </config>

四、源代碼:

package com.example.helloanychat; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.StringWriter; import java.net.Inet6Address; import java.net.InetAddress; import java.net.NetworkInterface; import java.net.SocketException; import java.util.Enumeration; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import android.os.Environment; import android.util.Log; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.NodeList; import org.xmlpull.v1.XmlPullParserFactory; import org.xmlpull.v1.XmlSerializer; /**  * 配置信息類  * 新建日期:2014/12/8 by jdh  */ public class Config implements IF_Config {  //配置信息  private Config_Info config_info = new Config_Info();  /**   * 構(gòu)造函數(shù)   */  public Config() {   boolean ok;   File sd_path;   File file_cfg_dir;   File file_cfg;   FileOutputStream out;   String str;   FileInputStream in;   //得到本機(jī)ip地址   config_info.local_ip = getLocalIpAddress();   System.out.printf("本機(jī)ip:%s/n", config_info.local_ip);   //獲取SD卡目錄   sd_path = Environment.getExternalStorageDirectory();   //判斷文件夾是否存在   file_cfg_dir = new File(sd_path.getPath() + "http://Remote_Meeting");  if (!file_cfg_dir.exists() && !file_cfg_dir.isDirectory()) {    System.out.println("配置文件夾Remote_Meeting不存在!");    ok = file_cfg_dir.mkdirs();    if (ok) {     System.out.println("創(chuàng)建文件夾成功!");    } else {     System.out.println("創(chuàng)建文件夾失敗!");         }   }   //判斷配置文件是否存在   file_cfg = new File(file_cfg_dir.getPath(),"cfg.xml");  if (!file_cfg.exists())   {    System.out.println("配置文件cfg.xml不存在!");   try {     file_cfg.createNewFile();     System.out.println("創(chuàng)建文件cfg.xml成功!");    //生成初始化的配置數(shù)據(jù)     try {      out = new FileOutputStream(file_cfg);     //保存默認(rèn)配置      config_info.title = "遠(yuǎn)程視頻會(huì)見系統(tǒng)";     config_info.local_port = 12600;      config_info.schedule_server_ip = "10.58.1.59";     config_info.schedule_server_port = 12601;     str = produce_xml_string(config_info);     out.write(str.getBytes());      out.close();     } catch (IOException e) {      // TODO Auto-generated catch block     e.printStackTrace();     }    } catch (IOException e) {     // TODO Auto-generated catch block    e.printStackTrace();    }   }   config_info.title = "遠(yuǎn)程";   config_info.local_port = 126;   config_info.schedule_server_ip = "10.5";  config_info.schedule_server_port = 12;  System.out.printf("----222222222%s,%d,%s,%d/n",config_info.title,config_info.local_port,  config_info.schedule_server_ip,config_info.schedule_server_port);  //解析xml文件  try {   in = new FileInputStream(file_cfg);   DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();    DocumentBuilder builder = factory.newDocumentBuilder();   Document document = builder.parse(in);   // 獲取根節(jié)點(diǎn)    Element root = document.getDocumentElement();   NodeList node = root.getChildNodes();    //獲得第1子節(jié)點(diǎn):標(biāo)題    config_info.title = node.item(0).getFirstChild().getNodeValue();    //獲得第2子節(jié)點(diǎn):本機(jī)端口    config_info.local_port = Integer.parseInt(node.item(1).getFirstChild().getNodeValue());   //獲得第3子節(jié)點(diǎn):調(diào)度服務(wù)器ip    config_info.schedule_server_ip = node.item(2).getFirstChild().getNodeValue();    //獲得第4子節(jié)點(diǎn):調(diào)度服務(wù)器端口    config_info.schedule_server_port = Integer.parseInt(node.item(3).getFirstChild().getNodeValue());     System.out.printf("----222222222%s,%d,%s,%d/n",config_info.title,config_info.local_port,      config_info.schedule_server_ip,config_info.schedule_server_port);   } catch (Exception e) {    e.printStackTrace();   }  }  @Override  public Config_Info get_config_info() {   return config_info;  }  /**   * 得到本機(jī)ip地址   * @return 本機(jī)ip地址   */  private String getLocalIpAddress() {   try {    for (Enumeration<NetworkInterface> en = NetworkInterface      .getNetworkInterfaces(); en.hasMoreElements();) {     NetworkInterface intf = en.nextElement();     for (Enumeration<InetAddress> enumIpAddr = intf       .getInetAddresses(); enumIpAddr.hasMoreElements();) {      InetAddress inetAddress = enumIpAddr.nextElement();      //if (!inetAddress.isLoopbackAddress()) {       if (!inetAddress.isLoopbackAddress() && !(inetAddress instanceof Inet6Address)) {       return inetAddress.getHostAddress().toString();      }     }    }   } catch (SocketException ex) {    Log.e("WifiPreference IpAddress", ex.toString());   }   return null;  }  /**   * 生成xml配置文件的String數(shù)據(jù)流   * Config_Info的本機(jī)ip信息不會(huì)保存   * @param info:配置信息   * @return xml的String數(shù)據(jù)流   */  private String produce_xml_string(Config_Info info) {   StringWriter stringWriter = new StringWriter();   try {    // 獲取XmlSerializer對象    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();    XmlSerializer xmlSerializer = factory.newSerializer();    // 設(shè)置輸出流對象    xmlSerializer.setOutput(stringWriter);    //開始標(biāo)簽    xmlSerializer.startDocument("utf-8", true);    xmlSerializer.startTag(null, "config");    //標(biāo)題    xmlSerializer.startTag(null, "title");    xmlSerializer.text(info.title);    xmlSerializer.endTag(null, "title");    //本機(jī)端口    xmlSerializer.startTag(null, "local_port");    xmlSerializer.text(Integer.toString(info.local_port));    xmlSerializer.endTag(null, "local_port");    //調(diào)度服務(wù)器ip    xmlSerializer.startTag(null, "schedule_service_ip");    xmlSerializer.text(info.schedule_server_ip);    xmlSerializer.endTag(null, "schedule_service_ip");    //調(diào)度服務(wù)器端口    xmlSerializer.startTag(null, "schedule_service_port");    xmlSerializer.text(Integer.toString(info.schedule_server_port));    xmlSerializer.endTag(null, "schedule_service_port");    xmlSerializer.endTag(null, "config");    xmlSerializer.endDocument();   } catch (Exception e) {    e.printStackTrace();   }   return stringWriter.toString();  } }

希望本文所述對大家的Android程序設(shè)計(jì)有所幫助。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 枣阳市| 登封市| 和平区| 丰原市| 朝阳县| 铁岭县| 延庆县| 桦甸市| 屏南县| 瑞金市| 阳西县| 远安县| 洛浦县| 三门峡市| 台东市| 永清县| 灯塔市| 宽城| 建平县| 和田县| 柯坪县| 和顺县| 浠水县| 贡觉县| 湖北省| 大渡口区| 巴彦县| 宁德市| 安溪县| 资兴市| 渭源县| 新邵县| 朔州市| 大渡口区| 澄城县| 聂拉木县| 黔江区| 原阳县| 石林| 青州市| 西青区|