前言:对xstream不理解的请看:

android XMl 解析神奇xstream 一: 解析android项目中 asset 文件夹 下的 aa.xml 文件

android XMl 解析神奇xstream 二: 把对象转换成xml

android XMl 解析神奇xstream 三: 把复杂对象转换成 xml

android XMl 解析神奇xstream 四: 将复杂的xml文件解析为对象

1、建立JavaBeen

package com.android10; public class Person { String pName ; String pAge ; public String getpName() { return pName; } public void setpName(String pName) { this.pName = pName; } public String getpAge() { return pAge; } public void setpAge(String pAge) { this.pAge = pAge; } }

package com.android10; public class Product { private String name ; private String age ; private Person person ; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Person getPerson() { return person; } public void setPerson(Person person) { this.person = person; } }


2、工具类代码

package com.android10; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; import android.content.Context; import android.os.Environment; public class XstreamUtil { XcallBack xcallBack ; /** * 把xml字符串写入SD卡文件 * @param context * @param str    xml字符串 */    public void writeToXml(Context context, String str ){ //获取文件路径        String SDPATH = Environment.getExternalStorageDirectory()  + "/myfile1.xml/" ; //创建文件        File file = new File( SDPATH ) ; if( !file.exists() ){ try { file.createNewFile() ; } catch (IOException e) { e.printStackTrace(); } } //写入数据        try { FileOutputStream out = new FileOutputStream( file ) ; OutputStreamWriter outw = new OutputStreamWriter(out); try { outw.write(str); outw.close(); out.close(); xcallBack.success(); } catch (IOException e) { xcallBack.fail(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); xcallBack.fail(); } } void setXStreamLister( XcallBack xcallBack ){ this.xcallBack = xcallBack ; } } interface XcallBack{ /** * 写入成功 */    void success() ; /** * 写入失败 */    void fail() ; }


3、主要方法

package com.android10; import android.app.Activity; import android.os.Bundle; import android.widget.Toast; import com.thoughtworks.xstream.XStream; public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView( R.layout.activity_main ); Person person = new Person() ; person.setpName( "saliy" ) ; person.setpAge( "36" ); Product product = new Product() ; product.setName( "jhon" ) ; product.setAge( "30" ); product.setPerson( person ); //将对象转化为xml字符串        XStream xstream = new XStream() ; //设置别名        xstream.alias( "blog" , Product.class ) ; String string = xstream.toXML( product ) ; XstreamUtil xUtil = new XstreamUtil() ; xUtil.setXStreamLister( new XcallBack() { @Override public void success() { Toast.makeText( MainActivity.this , "成功了 ", Toast.LENGTH_SHORT ).show(); } @Override public void fail() { Toast.makeText( MainActivity.this , "失败了 ", Toast.LENGTH_SHORT ).show(); } }); xUtil.writeToXml( this , string ); } }

4、运行结果

<blog>
<age>30</age>
<name>jhon</name>
<person>
<pAge>36</pAge>
<pName>saliy</pName>
</person>
</blog>

更多相关文章

  1. Android(安卓)NDK 入门
  2. 关于android的中文文档
  3. Android版本演进史
  4. Android:使用命令行工具adb、mksdcard等
  5. Android(安卓)JNI打印c\c++日志信息
  6. android沉浸状态栏实现、地图多线路规划、Retrofit+RxJava+Jsoup
  7. Android编译系统分析
  8. RenderScript 让你的Android计算速度快的飞上天!
  9. Android(安卓)NDK 入门

随机推荐

  1. andr
  2. Android菜单详解(四)——使用上下文菜单Con
  3. 如何让Android(安卓)UI设计性能更高效
  4. android 视图getParent,getChildAt
  5. Android抽象布局——include、merge 、Vi
  6. Android(安卓)AOSP基础(四)Source Insight
  7. Android8.0 蓝牙系统
  8. android JNI层线程回调Java函数
  9. Android作为SocketServer以及手机IP问题
  10. android handler 多线程demo