我的编程空间,编程开发者的网络收藏夹
学习永远不晚

android编程之xml文件读取和写入方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

android编程之xml文件读取和写入方法

本文实例讲述了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; 
 
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() + "//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; 
 } 
  
 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; 
 } 
  
 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程序设计有所帮助。

您可能感兴趣的文章:Android读取XML文件中的数据Android开发实现读取excel数据并保存为xml的方法Android App中读取XML与JSON格式数据的基本方法示例Android平台基于Pull方式对XML文件解析与写入方法详解Android利用Document实现xml读取和写入操作


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

android编程之xml文件读取和写入方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android编程之xml文件读取和写入方法

本文实例讲述了android编程之xml文件读取和写入方法。分享给大家供大家参考。具体分析如下: 一、环境: 主机:WIN8 开发环境:Eclipse 二、说明: 1.打开sd卡中的xml文件,如果不存在,这新建一个,并写入默认配置 2.读
2022-06-06

Android编程中读写私有文件的方法

本文实例讲述了Android编程中读写私有文件的方法。分享给大家供大家参考,具体如下: 所谓私有文件,则是指程序自己能读取,而其它程序没有权限访问的文件,此文件保存在Data.app.程序包.file目录下面。 其中写文件的方法比较简单:p
2022-06-06

java文件读取和写入的方法是什么

Java中读取和写入文件的方法有很多,以下是其中几种常用的方法:使用File类:可以使用File类来创建、删除、重命名文件,以及检查文件是否存在等操作。可以通过FileInputStream和FileOutputStream来读取和写入文件
2023-10-23

Android中没有插入SD情况下的文件写入和读取方法

在Android开发时会遇到如下一种场合 希望应用下载到当前应用的根目录下,而非SD卡中 然后可以随时被该应用或其他应用访问这个文件,即具有被全局读取的权限 此时可以利用上下文的本地文件输出流进行文件写入 注意要为文件赋予可写可读的权限,否
2022-06-06

Android编程之文件的读写实例详解

本文实例分析了Android编程之文件的读写方法。分享给大家供大家参考,具体如下: Android的文件读写与JavaSE的文件读写相同,都是使用IO流。而且Android使用的正是JavaSE的IO流,下面我们通过一个练习来学习Andro
2022-06-06

android编程之XML文件解析方法详解(附源码)

本文实例讲述了android编程之XML文件解析方法。分享给大家供大家参考,具体如下: 在android开发中,经常用到去解析xml文件,常见的解析xml的方式有一下三种:SAX、Pull、Dom解析方式。最近做了一个android版的CS
2022-06-06

python读取/写入配置文件ini方法

在写测试脚本时,经常有一些需要变动的数据,可以单独放在ini文件里,然后读取传递给相应的函数,这样程序操作更灵活。具体的方法介绍如下:文件结构:Cofig.ini内容:[test1]ip = 10.10.10.10[test2]port =
2023-01-31

c语言读取文件和写入文件的方法是什么

在C语言中,读取文件的方法是使用`fopen`函数打开文件,然后使用`fread`或`fgetc`函数来读取文件的内容,最后使用`fclose`函数关闭文件。下面是一个例子,演示了如何读取文件内容:```c#include int main
2023-08-09

Android开发实现读取Assets下文件及文件写入存储卡的方法

本文实例讲述了Android开发实现读取Assets下文件及文件写入存储卡的方法。分享给大家供大家参考,具体如下:调用一个反编译的.so文件,查看起加密和解密情况,需要解析上万的数组,而so文件加密解密都是通过Byte来进行,又需要把Str
2023-05-30

如何使用PHP进行文件读写操作?(PHP读取和写入文件的方法有哪些?)

PHP提供多种文件读写方法,包括:fopen()和fwrite()、file_put_contents()、file()和file_put_contents()、fopen()和fgets()、fseek()和fread()、copy()、unlink()、PHPstreams、FilesystemIterator和FileInfo。选择方法取决于需求和限制。fopen()和fwrite()用于低级操作,file_put_contents()和file()更简单,PHPstreams和Filesystem
如何使用PHP进行文件读写操作?(PHP读取和写入文件的方法有哪些?)
2024-04-02

java简单解析xls文件的方法示例【读取和写入】

本文实例讲述了java简单解析xls文件的方法。分享给大家供大家参考,具体如下:读取:import java.io.*;import jxl.*;import jxl.write.*;import jxl.format.*;class Aa
2023-05-31

Python文件打开读取写入方法实用案例

我们在工作中经常需要用python对文本文件进行内容的读取和写入,下面这篇文章主要给大家介绍了关于Python文件打开读取写入方法的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2023-05-19

pythonpandas解析(读取、写入)CSV文件的操作方法

这篇文章主要介绍了pythonpandas解析(读取、写入)CSV文件,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-12-23

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录