a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統 > Android > 正文

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

2020-04-11 11:37:36
字體:
來源:轉載
供稿:網友

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

一、環境:

主機:WIN8
開發環境:Eclipse

二、說明:

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

三、xml文件格式:

<?xml version="1.0" encoding="UTF-8" standalone="true"?> -<config> <title>遠程視頻會見系統</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();  /**   * 構造函數   */  public Config() {   boolean ok;   File sd_path;   File file_cfg_dir;   File file_cfg;   FileOutputStream out;   String str;   FileInputStream in;   //得到本機ip地址   config_info.local_ip = getLocalIpAddress();   System.out.printf("本機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("創建文件夾成功!");    } else {     System.out.println("創建文件夾失敗!");         }   }   //判斷配置文件是否存在   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("創建文件cfg.xml成功!");    //生成初始化的配置數據     try {      out = new FileOutputStream(file_cfg);     //保存默認配置      config_info.title = "遠程視頻會見系統";     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 = "遠程";   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);   // 獲取根節點    Element root = document.getDocumentElement();   NodeList node = root.getChildNodes();    //獲得第1子節點:標題    config_info.title = node.item(0).getFirstChild().getNodeValue();    //獲得第2子節點:本機端口    config_info.local_port = Integer.parseInt(node.item(1).getFirstChild().getNodeValue());   //獲得第3子節點:調度服務器ip    config_info.schedule_server_ip = node.item(2).getFirstChild().getNodeValue();    //獲得第4子節點:調度服務器端口    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;  }  /**   * 得到本機ip地址   * @return 本機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數據流   * Config_Info的本機ip信息不會保存   * @param info:配置信息   * @return xml的String數據流   */  private String produce_xml_string(Config_Info info) {   StringWriter stringWriter = new StringWriter();   try {    // 獲取XmlSerializer對象    XmlPullParserFactory factory = XmlPullParserFactory.newInstance();    XmlSerializer xmlSerializer = factory.newSerializer();    // 設置輸出流對象    xmlSerializer.setOutput(stringWriter);    //開始標簽    xmlSerializer.startDocument("utf-8", true);    xmlSerializer.startTag(null, "config");    //標題    xmlSerializer.startTag(null, "title");    xmlSerializer.text(info.title);    xmlSerializer.endTag(null, "title");    //本機端口    xmlSerializer.startTag(null, "local_port");    xmlSerializer.text(Integer.toString(info.local_port));    xmlSerializer.endTag(null, "local_port");    //調度服務器ip    xmlSerializer.startTag(null, "schedule_service_ip");    xmlSerializer.text(info.schedule_server_ip);    xmlSerializer.endTag(null, "schedule_service_ip");    //調度服務器端口    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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品久久久久久 | 亚洲国产精品久久久久秋霞不卡 | 中文字幕亚洲欧美精品一区四区 | 男男高h在线观看 | 欧美啊v| 亚州av | 毛片链接 | 日韩福利视频 | 韩国精品一区二区 | 在线第一页 | 性瘾调教校园h | 国产精品夜夜春夜夜爽久久电影 | 免费看色 | 在线观看黄色网 | 中文字幕不卡在线观看 | 97中文字幕| 久久精品欧美 | 日韩午夜激情 | 亚洲成年片 | 欧美亚洲啪啪 | 国产精品一区在线 | 国产在线区 | 日韩成人小视频 | 国产免费视频 | 色又黄又爽网站www久久 | 国产亚洲一区二区三区在线 | 黄色免费网站观看 | 极品少妇一区二区三区精品视频 | 午夜电影合集 | 欧美中文在线观看 | 精品视频在线观看 | 亚洲免费在线视频 | 男人的天堂亚洲 | 久久久久国产精品一区二区 | 午夜精品久久久久久久久久久久 | 久热精品视频在线播放 | 久久国产精品久久久久久 | 日本成人在线看 | jizz国产免费 | 亚洲免费在线观看 | 国产青青草 |