DocumentBuilderFactory dbf;
DocumentBuilder db;
Document d;

DOMSource dom;
TransformerFactory tf;
Transformer t;
StreamResult sr;

File file;

public void set(String name) {
        file = new (name + ".xml");
        sr = new StreamResult(file);
        dom = new DOMSource();
}
public void setData() {
        dbf = DocumentBuilderFactory.newInstance();
        db = dbf.newDocumentBulider();
        if (file.isFile()) {
                d = db.parse(file);
        }
        else {
                d = db.newDocument();
        }

        ... // 데이터 추가

        dom.setNode(d);
        tr = TransformerFactory.newInstance();
        t = tr.newTransformer();
        t.transform(dom, sr);
}
public void make() {
        for (int i=0; i<데이터수; i++) {
                setData();
        }
}



vs



publid void set(String name) {
        file = new (name + ".xml");
        sr = new StreamResult(file);
        dom = new DOMSource();

        
dbf = DocumentBuilderFactory.newInstance();
        db = dbf.newDocumentBulider();
        d = db.newDocument();
}
public void setData() {
        ... // 데이터 추가
}
public void make() {
        dom.setNode(d);
        tr = TransformerFactory.newInstance();
        t = tr.newTransformer();
        t.transform(dom, sr);
}



요약
xml 데이터 추가 -> 파일 만들어놓기 -> 데이터 갱신 -> 파일 다시 읽어서 -> xml 데이터 추가 (반복)
vs
xml 데이터 추가 -> 데이터 갱신 -> xml 데이터 추가 (반복) -> 끝나면 파일 만들기




아 당연히 후자구나 시발 쓰다보니 알겠네

역시 정리를 해봐야한다