我们可以使用gson streaming api读写文件,它基于顺序读写标准。 jsonwriter和jsonreader是为streaming api中的流式写入和读取而构建的核心类。 jsonwriter将 json 编码值写入流,一次一个令牌。该流包含文字值(字符串、数字、布尔值和 null)以及开始和结束分隔符对象和数组,jsonreader将 json 编码值读取为令牌流。此流包含文字值(字符串、数字、布尔值和空值)以及开始和结束分隔符。标记按照深度优先顺序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(); } }}
输出adithya25javascalapython
以上就是我们如何使用gson流式api在java中读写文件?的详细内容。