[java] Java Apache Commons Configuration으로 XML 파일 읽고 쓰기

Java에서 XML 파일을 읽고 쓰는 작업은 Apache Commons Configuration 라이브러리를 사용하여 간단하게 수행할 수 있습니다. 이 라이브러리는 다양한 설정 파일 형식을 다룰 수 있도록 해줍니다.

Apache Commons Configuration 라이브러리 추가하기

먼저, Maven 프로젝트를 사용하는 경우 pom.xml 파일에 다음 종속성을 추가해야 합니다.

<dependency>
    <groupId>commons-configuration</groupId>
    <artifactId>commons-configuration</artifactId>
    <version>1.10</version>
</dependency>

Gradle 프로젝트를 사용하는 경우 build.gradle 파일에 다음 종속성을 추가해야 합니다.

dependencies {
    implementation 'commons-configuration:commons-configuration:1.10'
}

XML 파일 읽기

아래는 예제 XML 파일(config.xml)의 내용입니다.

<configuration>
    <database>
        <host>localhost</host>
        <port>3306</port>
        <username>admin</username>
        <password>password123</password>
    </database>
</configuration>

다음은 Java 코드에서 XML 파일을 읽는 방법입니다.

import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.builder.fluent.Configurations;

public class XmlReaderExample {
    public static void main(String[] args) {
        Configurations configs = new Configurations();
        try {
            XMLConfiguration config = configs.xml("config.xml");
            
            // XML 파일에서 원하는 값을 읽어옵니다.
            String host = config.getString("database.host");
            int port = config.getInt("database.port");
            String username = config.getString("database.username");
            String password = config.getString("database.password");
            
            // 읽어온 값 출력
            System.out.println("Host: " + host);
            System.out.println("Port: " + port);
            System.out.println("Username: " + username);
            System.out.println("Password: " + password);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

XML 파일 쓰기

이제 XML 파일에 새로운 값을 추가하거나 기존 값을 수정하는 방법을 살펴보겠습니다.

import org.apache.commons.configuration2.XMLConfiguration;
import org.apache.commons.configuration2.builder.fluent.Configurations;

public class XmlWriterExample {
    public static void main(String[] args) {
        Configurations configs = new Configurations();
        try {
            XMLConfiguration config = configs.xml("config.xml");
            
            // XML 파일에 새로운 값을 추가합니다.
            config.setProperty("database.host", "newhost.com");
            config.setProperty("database.port", "3307");
            
            // XML 파일에 변경된 값을 저장합니다.
            configs.save(config, "config.xml");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 기존 XML 파일의 “database.host”와 “database.port” 값을 변경하여 저장하는 예제입니다.

Apache Commons Configuration을 사용하면 Java에서 XML 파일을 손쉽게 읽고 쓸 수 있습니다. XML 파일을 프로그램의 설정 파일로 사용하는 경우에 유용하게 활용할 수 있습니다.

자세한 내용은 Apache Commons Configuration 공식 문서를 참고하시기 바랍니다.