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
'▸JAVA > 라이브러리(API)' 카테고리의 다른 글
Comparator를 사용한 문자열 정렬 및 여러 개의 배열 객체 정렬 (1) | 2020.04.19 |
---|---|
java.lang.Comparable / java.util.Comparator 사용법 (0) | 2020.04.13 |
java.nio 패키지 사용법(Channel / Buffer / Charset) [1/1] (2) | 2019.12.17 |
java.nio.file.Files 주요 메소드 [1/1] (5) | 2019.12.16 |
java.nio.file.Path 주요 메소드 [1/1] (3) | 2019.12.16 |
댓글