1、XML文件
(1)使用pull方式解析
//1.创建解析工厂对象
XmlPullParserFactory xmlFactory = XmlPullParserFactory.newInstance();
//2.获得解析器对象
XmlPullParser xmlParser = xmlFactory.newPullParser();
//3.指定资源路径
FileReader fr = new FileReader("F:\\book.xml");
xmlParser.setInput(fr);
int event = xmlParser.getEventType();
while(event != END_DOCUMENT){
switch(event){
case START_DOCUMENT://文档开始
System.out.println("=====开始解析文档======");
break;
case START_TAG://标签开始
String tagname = xmlParser.getName();//获得标签名称
switch(tagname){
case "name":
String name = xmlParser.nextText();
System.out.println(name);
break;
case "jiage":
String jiage = xmlParser.nextText();
System.out.println(jiage);
break;
case "zz":
String zz = xmlParser.nextText();
System.out.println(zz);
break;
case "cb":
String cb = xmlParser.nextText();
System.out.println(cb);
break;
}
break;
case END_TAG://标签结束
tagname = xmlParser.getName();
System.out.println("======文档解析结束=======");
break;
}
event = xmlParser.next();//获取下一个事件
}
(1)解析properties
//1.实例化properties对象
Properties prop = new Properties();
//2.获得属性文件
FileInputStream fis = new FileInputStream("F:\\stu.properties");
//3.使用属性对象的load()方法获取内容
prop.load(fis);
//4.根据键获得值
String name = prop.getProperty("userName");
System.out.println(name);
String pwd = prop.getProperty("pwd");
System.out.println(pwd);
//5.关闭资源
fis.close();
(2)使用pull方式写入
//1.创建解析工厂
XmlPullParserFactory xmlFactory = XmlPullParserFactory.newInstance();
//2.创建序列化对象
XmlSerializer xmls = xmlFactory.newSerializer();
//3.指定文件资源
FileWriter fw = new FileWriter("F:\\stu.xml");
xmls.setOutput(fw);
xmls.startDocument("utf-8", false);//生成xml文档头信息
xmls.startTag(null, "student");//student标签开始
xmls.startTag(null, "id");//id标签开始
xmls.text("1234");//文本内容
xmls.endTag(null, "id");//id标签结束
xmls.endTag(null, "student");//student标签结束
xmls.endDocument();//文档结束
2、json文件
(1)使用gson方式解析
//1.实例化解析对象
JsonParser jp = new JsonParser();
//2.读取要解析的json文件
FileReader fr = new FileReader("F:\\stu.json");
//3.解析json文件
JsonObject jo = (JsonObject) jp.parse(fr);
System.out.println("姓名:"+jo.get("name").getAsString());
System.out.println("年龄:"+jo.get("age").getAsDouble());
System.out.println("是否有车:"+jo.get("car").getAsBoolean());
//获取数组
JsonArray jarr = jo.get("hobby").getAsJsonArray();
for (int i = 0; i < jarr.size(); i++) {
JsonObject j = (JsonObject)jarr.get(i);
System.out.println("id:"+j.get("id").getAsString());
}
(2)写入json文件
//1.创建json对象
JsonObject jo = new JsonObject();
//2.添加键值对
jo.addProperty("name", "张三");
jo.addProperty("age", 20);
jo.addProperty("car", true);
JsonObject hobby1 = new JsonObject();//数组中的第1个元素
hobby1.addProperty("id", "java");
JsonObject hobby2 = new JsonObject();//数组中的第2个元素
hobby2.addProperty("id", "php");
JsonArray ja = new JsonArray();//数组对象
ja.add(hobby1);
ja.add(hobby2);
jo.add("hobby", ja);//把数组对象添加到json的hobby属性中
//3.保存到json文件
FileOutputStream fos = new FileOutputStream("F:\\abc.json");
fos.write(jo.toString().getBytes());
fos.close();
3、properties文件
(2)写入properties
//1.创建properties对象
Properties prop = new Properties();
//2.指定输出文件
FileOutputStream fos = new FileOutputStream("F:\\stu.properties");
//3.设置要输出的属性
prop.setProperty("userName", "java456");
prop.setProperty("pwd", "abc123");
//4.保存文件
prop.store(fos, "abc");
//5.关闭资源
fos.close();