Json.simple
- JSON 데이터를 파일에 쓰기 위해서는 먼저 JSON 객체를 String으로 변환해야 한다.
- build.gradle 에 추가 후 사용가능
implementation 'com.googlecode.json-simple:json-simple:1.1.1'
JSONObject
- JSON 객체를 나타내며, 키-값 쌍으로 구성됩니다.
- 문자열로 변환하려면 toString() 메소드를 사용
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "John");
jsonObject.put("age", 30);
jsonObject.put("isMarried", true);
String jsonString = jsonObject.toString();
JSONArray
- JSON 배열을 나타내며 JSONObject의 배열
- 문자열로 변환하려면 toString() 메소드를 사용
JSONArray jsonArray = new JSONArray();
jsonArray.put("hello");
jsonArray.put(123);
jsonArray.put(true);
String jsonString = jsonArray.toString();
JSONParser
- 자바에서 JSON 문자열을 파싱하기 위해서는 JSON 데이터를 구문 분석하여 자바 객체로 변환해주는 JSONParser 클래스를 사용할 수 있습니다
1. JSONParser 객체를 생성합니다.
2. parse() 메서드를 사용하여 JSON 문자열을 파싱합니다.
3. 파싱된 결과는 Object 타입으로 반환되므로, 필요한 타입으로 캐스팅하여 사용합니다.
public class JSONParserExample {
public static void main(String[] args) {
String jsonStr = "{\"name\":\"John\", \"age\":30, \"city\":\"New York\"}";
JSONParser parser = new JSONParser();
try {
JSONObject jsonObj = (JSONObject) parser.parse(jsonStr);
String name = (String) jsonObj.get("name");
Long age = (Long) jsonObj.get("age");
String city = (String) jsonObj.get("city");
System.out.println("Name: " + name);
System.out.println("Age: " + age);
System.out.println("City: " + city);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
FileWriter
- 문자 데이터를 파일에 쓰는 데 사용되며, 문자열, 문자 배열, 문자열 버퍼 등의 데이터를 파일에 쓸 수 있다.
- 예외 처리도 필요합니다. FileWriter 클래스의 write() 메서드는 IOException을 발생시킬 수 있으므로 try-catch 블록을 사용하여 예외 처리를 해주어야 합니다.
PrintWriter
- 자바 PrintWriter 클래스는 파일에 문자 데이터를 쓰기 위한 기능을 제공합니다.
write(String str) 메서드;
- 문자열 데이터를 파일에 씁니다.
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < FamousSayingController.famousSayingLists.size(); i++) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("id", FamousSayingController.famousSayingLists.get(i).getId());
jsonObject.put("content", FamousSayingController.famousSayingLists.get(i).getFamousSaying());
jsonObject.put("author", FamousSayingController.famousSayingLists.get(i).getAuthor());
jsonArray.add(jsonObject);
}
try (PrintWriter out = new PrintWriter(new FileWriter("data.json"))) {
out.write(jsonArray.toString());
} catch (IOException e) {
e.printStackTrace();
}
File
File class
- 파일 시스템에서 파일이나 디렉토리를 다루기 위한 클래스
- 파일의 경로, 파일의 이름, 파일의 크기, 파일의 생성 시간, 수정 시간 등 다양한 정보를 제공하며 파일이나 디렉토리를 생성, 삭제, 이동, 이름 변경 등의 작업을 수행
Reader
Reader class
- 문자 스트림에서 데이터를 읽어와서 문자로 변환하는 기능을 제공