▸JAVA/라이브러리(API)

java.util.Properties 주요 메소드 [1/1]

코데방 2019. 12. 19.
728x90

[ Properties 클래스 ]

  • MAP 계열의 컬렉션 프레임워크와 비슷하게 동작하는 파일
  • "Key = Value" 형태로 된 "파일이름.properties" 파일 또는 Xml 파일
  • key를 주면 Value를 반환하는 기능을 가짐
  • DB의 연결정보 등을 저장해두는 용도로 많이 쓰임

Enum(열거형) 클래스나 MAP 컬렉션 API와 비슷한 개념의 파일 버전입니다. 코드를 건들이지 않고도 정보를 변경할 수 있다는 강점이 있습니다. 

 

 

[ 생성 ]

  • 파일을 직접 여는 클래스가 아니므로 FileReader 또는 FileInputStream 객체를 매개변수로 받음
  • 외부 리소스와 직접 연결되지 않으므로 '확인된 예외'가 throw되어 있지 않음
  • load() 메소드를 통해 파일 정보를 넣어줌

 

[ 값(value) 가져오기 ]

 

void load (FileInputStream file) - 스트림으로 열린 Properties 파일 객체를 로드함
load (FileReader file)
String getProperty(String key) - key값을 제공하면 해당하는 Value를 문자열로 반환함
package study.first;

import java.io.File;
import java.io.FileReader;
import java.util.Properties;

public class Main {
	public static void main(String[] args) {

		File path = new File("C:\\JAVA\\Test\\user.properties");
		try(FileReader file = new FileReader(path)) {
	
			Properties p = new Properties();			
			p.load(file); // 파일 열어줌
			System.out.println(p.getProperty("id" , "pw")); // "Codevang"
			System.out.println(p.getProperty("pw")); // "codevang1!"
			System.out.println(p.getProperty("name")); // "코데방"
			
		} catch(Exception e) {
			
			System.out.println("실패");
		} 
	}
}

 


 

[ Properties 파일 생성 ]

파일을 직접 생성하지 못하므로 FileOutputStream 또는 FileWriter로 파일 생성

파일 생성 후 메소드를 사용해서 내용 입력

꼭 Properties 클래스로 넣어줄 필요는 없으나 편리하게 넣어줄 수 있음

 

파일생성은 스트림 클래스 계열로 해주고 Properties 클래스의 메소드로 내용만 넣어줍니다. 먼저 Properties 클래스 없이 FileReader 클래스를 사용해서 Properties 파일은 만든 코드입니다.

 

package study.first;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;

public class Main {
	public static void main(String[] args) {

		File path = new File("C:\\JAVA\\Test\\test.properties");
		try (FileWriter file = new FileWriter(path)) {

			BufferedWriter buf = new BufferedWriter(file);

			String[] str = { "id = Codevang", "pw = codevang1!", "name = 코데방" };

			// 버퍼에 str의 문자를 출력
			for (String a : str) {
				buf.write(a + '\n');
			}

			// 버퍼에 쌓인 문자를 모두 파일로 옮김
			buf.flush();
		
		} catch (Exception e) {

			System.out.println("실패");
		}
	}
}

 

 

Properties 클래스로 파일을 만든 코드입니다. 일반 파일 쓰기로 만든것과 달리 주석을 넣어줘야 하며 생성한 날짜도 자동으로 쓰여집니다.

 

Object setProperty(String key, value) - Properties 객체에 키와 값(value) 저장
void store(스트림객체, 주석) - 객체에 저장된 내용을 파일에 씀 (OutputStream, Writer 계열만 가능)

 

package study.first;

import java.io.File;
import java.io.FileWriter;
import java.util.Properties;

public class Main {
	public static void main(String[] args) {

		File path = new File("C:\\JAVA\\Test\\test2.properties");
		try (FileWriter file = new FileWriter(path)) {


			Properties p = new Properties();
			
			p.setProperty("id", "Codevang");
			p.setProperty("pw", "codevang1!");
			p.setProperty("name", "코데방");
			
			p.store(file, "userInfo");
			
		} catch (Exception e) {

			System.out.println("실패");
		}
	}
}
728x90

댓글

💲 추천 글