我们如何使用Java中的Gson流API读写文件?
我们可以使用Gson流API 读写文件,该文件基于顺序读写标准。该JsonWriter 和JsonReader 是流的写入和读入内置的核心类流API。JsonWriter 写入JSON编码值到一个流,一次一个令牌。该流包含文字值(字符串,数字,布尔值和null)以及对象和数组的开始 和结束 定界符 ,并且JsonReader 读取JSON编码的值作为令牌流。此流包含两个文字 值 (string,数字,布尔值和null)以及对象和数组的开始 和结束定界符。令牌被遍历在深度优先奥德R,以相同的顺序它们出现的JSON文档英寸
使用JsonWriter写入文件
示例
import java.io.*; import com.google.gson.stream.*; public class JsonWriterTest { public static void main(String args[]) { JsonWriter writer; try { writer = new JsonWriter(new FileWriter("input.json")); writer.beginObject(); writer.name("name").value("Adithya"); writer.name("age").value(25); writer.name("technologies"); writer.beginArray(); writer.value("Java"); writer.value("Scala"); writer.value("Python"); writer.endArray(); writer.endObject(); writer.close(); System.out.println("Data write to a file successfully"); } catch(Exception e) { e.printStackTrace(); } } }
输出结果
Data write to a file successfully
使用JsonReader读取文件
示例
import java.io.*; import com.google.gson.stream.*; public class JsonReaderTest { public static void main(String args[]) { JsonReader reader; try { reader = new JsonReader(new FileReader("input.json")); reader.beginObject(); while(reader.hasNext()) { String name = reader.nextName(); if(name.equals("name")) { System.out.println(reader.nextString()); } else if(name.equals("age")) { System.out.println(reader.nextInt()); } else if(name.equals("technologies")) { reader.beginArray(); while(reader.hasNext()) { System.out.println(reader.nextString()); } reader.endArray(); } else { reader.skipValue(); } } reader.endObject(); reader.close(); } catch(Exception e) { e.printStackTrace(); } } }
输出结果
Adithya 25 Java Scala Python