安卓使用StringBuffer和FileOutputStream生成xml文档
2018-11-16 19:53
274 查看
该程序是在安卓中点击生成xml按钮,在sdcard生成一个名为smsbackup的xml文档
布局就不多说了,先在存放java的文件夹中新建一个Sms类用来声明变量
Sms代码如下:
package com.example.createxmlv1; public class Sms { private String address; private String body; private String date; public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public String getBody() { return body; } public void setBody(String body) { this.body = body; } public String getDate() { return date; } public void setDate(String date) { this.date = date; } }
然后在主界面类中初始化我们要备份的数据,之后修改点击按钮的方法,通过StringBuffer的方式生成一个xml文件。
创建StringBuffer对象,开始拼接xml的文件头,根节点sms节点,address节点,body节点,date节点,然后获取sdcard文件的路径,再使用输出流将内容写入生成的xml文件。
主界面完整代码如下:
package com.example.createxmlv1; import android.os.Environment; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { List<Sms> smsList; Button btn1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //[1]初始化我们要备份的数据 smsList=new ArrayList<Sms>(); for (int i=0;i<10;i++){ Sms sms=new Sms(); sms.setAddress("10008"+i); sms.setBody("nihao"+i); sms.setDate("201"+i); //[2]把sms对象加入到集合中 smsList.add(sms); } } //点击按钮通过 stringBuffer的方式生成一个xml的文件 public void click(View view) { //[1]创建sb对象 StringBuffer sb=new StringBuffer(); //[2]开始组拼xml文件头 sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); //[3]开始组拼xml的根节点 sb.append("<smss>"); //[4]开始组拼sms节点 for (Sms sms:smsList){ sb.append("<sms>"); //[5]开始组拼address节点 sb.append("<address>"); sb.append(sms.getAddress()); sb.append("</address>"); //[6]开始组拼body节点 sb.append("<body>"); sb.append(sms.getBody()); sb.append("</body>"); //[7]开始组拼date节点 sb.append("<date>"); sb.append(sms.getDate()); sb.append("</date>"); sb.append("</sms>"); } sb.append("</smss>"); //[8]把数据保存到sd卡中 try { File file=new File(Environment.getExternalStorageDirectory().getPath(),"smsbackup.xml"); FileOutputStream fos=new FileOutputStream(file); fos.write(sb.toString().getBytes()); fos.close();//关闭流 } catch (Exception e) { e.printStackTrace(); } } }阅读更多
相关文章推荐
- 使用安卓内置的pull解析器解析xml文档,并自动映射成bean
- WebAPI使用多个xml文件生成帮助文档
- xml解析3:使用jdom框架进行对xml文档生成和读写解析
- 演示使用DOM技术如何动态生成新的XML文档
- WebAPI使用多个xml文件生成帮助文档(转)
- 使用JDOM生成XML文档
- 【转】WebAPI使用多个xml文件生成帮助文档
- XML(九)-使用DOM来生成xml文档
- WebAPI使用多个xml文件生成帮助文档
- 使用dom4j生成xml文档
- java使用dom4j生成与解析xml文档的方法示例
- 使用XMLHTTP获取XML文档并生成XMLDOM
- WebAPI使用多个xml文件生成帮助文档
- 演示使用DOM技术如何根据指定XML,进行相应的修改然后生成新的XML文档
- WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。
- WebAPI使用多个xml文件生成帮助文档
- 使用jdom生成xml文档
- WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。
- ASP.NET 动态查找数据 并且生成xml文档 同时使用xslt转换为xhtml
- WebService生成XML文档时出错。不应是类型XXXX。使用XmlInclude或SoapInclude属性静态指定非已知的类型。