Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 Gson 스트리밍 API를 사용하여 파일을 어떻게 읽고 쓸 수 있습니까?


Gson 스트리밍 API 를 사용하여 파일을 읽고 쓸 수 있습니다. 순차 읽기 및 쓰기 표준을 기반으로 합니다. JsonWriter JsonReader Streaming API에서 스트리밍 쓰기 및 읽기를 위해 구축된 핵심 클래스입니다. . JsonWriter JSON 인코딩 값을 한 번에 하나의 토큰으로 스트림에 씁니다. 스트림에는 리터럴 값(문자열, 숫자, 부울 및 null)이 모두 포함됩니다. ) 및 시작 종료 구분자 개체 및 배열 및 JsonReader JSON 인코딩 값을 토큰 스트림으로 읽습니다. 이 스트림에는 리터럴 가치 (들 문자열, 숫자, 부울 및 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