반응형
java json 사용하여 .json 파일을 만들때 heap 메모리가 적거나 서버 리소스를 적게 사용하기 위해
streaming 을 사용합니다. 일반적인 json 파일을 만들때 파일에 한꺼번에 사용하기 때문에,
메모리 부하가 발생 할 수있습니다.
streaming을 사용하면 한줄씩 파일에 쓰기 때문에 자원를 효율적 으로 사용 할 수있습니다.
실습
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
package json;
import java.io.FileWriter;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerator;
public class Test {
public static void main(String[] args) {
try {
JsonFactory jfactory = new JsonFactory(); // factory 생성
// 저장할 파일 위치
JsonGenerator jGenerator = jfactory.createJsonGenerator(new FileWriter("C:\\Users\\USER\\Desktop\\java-workspaces\\JavaTest\\result3.json"));
jGenerator.useDefaultPrettyPrinter(); // 자동개행
jGenerator.writeStartObject(); //{
jGenerator.writeStringField("name", "kim"); // "name" : "kim",
jGenerator.writeNumberField("age", 30); // "age" : 30,
jGenerator.writeFieldName("skills"); // "skills" :
jGenerator.writeStartArray(); // [
jGenerator.writeString("Java");
jGenerator.writeString("Spring");
jGenerator.writeString("JS");
jGenerator.writeString("SQL");
jGenerator.writeEndArray(); // ]
jGenerator.writeFieldName("address"); // "address"
jGenerator.writeStartObject(); // {
jGenerator.writeStringField("city", "seoul");
jGenerator.writeStringField("country", "korea");
jGenerator.writeEndObject(); // }
jGenerator.writeEndObject(); //}
jGenerator.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
|
cs |
결과
1
2
3
4
5
6
7
8
9
|
{
"name" : "kim",
"age" : 30,
"skills" : [ "Java", "Spring", "JS", "SQL" ],
"address" : {
"city" : "seoul",
"country" : "korea"
}
}
|
cs |
위와 같이 파일이 만들얼 집니다.
반응형