자바

Properties

devjones 2020. 12. 5. 23:02

생성

파일을 직접 여는 클래스가 아니므로 FileReader, FileInputStream 객체를 매개변수로..

외부 리소스와 직접 연결되지 않으므로 '확인된 예외'가 throw되어 있지 않음.

load() 메소드를 통해 파일 정보를 넣어줌.

 

값(value) 가져오기

스트림으로 열린 Properties 파일 객체를 로드함.

 

key값을 제공하면 해당하는 Value를 문자열로 반환함

 

package properties;

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:\\userProp.properties");
		
		try(FileReader file = new FileReader(path)) {
			
			Properties p = new Properties();
			p.load(file);
			
			System.out.println(p.getProperty("id", "pw"));
			System.out.println(p.getProperty("pw"));
			System.out.println(p.getProperty("name"));
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

결과:

 

Properties 파일 생성

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

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

 

파일생성은 스트림 계열로, 내용작성은 Properties클래스의 메소드로.

 

다음은 Properties클래스없이 FileReader 클래스를 사용해서 Properties 파일은 만든 예제이다.

package properties;

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

public class Main01 {

	public static void main(String[] args) {
		
		File path = new File("C:\\test.properties");
		
		try(FileWriter file = new FileWriter(path)) {
			
			BufferedWriter bw = new BufferedWriter(file);
			
			String[] str = { "id = devjones", "pw = 12345", "name = 데브존스", "추가키 = 추가밸류" };
			
			for(String a : str) bw.write(a + '\n');
			
			bw.flush();
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

결과:

 

다음은 Properties 클래스로 만든 예제이다.

package properties;

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

public class main02 {

	public static void main(String[] args) {
		
		File path = new File("C:\\test02.properties");
		
		try(FileWriter file = new FileWriter(path)) {
			
			Properties p = new Properties();
			
			p.setProperty("id", "devjones01");
			p.setProperty("pw", "1234501");
			p.setProperty("name", "데브존스01");
			
			p.store(file, "devjones의 정보");
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

 

결과:

 

 

 

출처:

codevang.tistory.com/163