속성 목록에는 "기본값"으로 다른 속성 목록이 포함될 수 있습니다. 원래 속성 목록에서 속성 키를 찾을 수 없으면 두 번째 속성 목록이 검색됩니다.
Properties는 Hashtable에서 상속되므로 put 및 putAll 메서드를 Properties 개체에 적용할 수 있습니다. 그러나 이 두 가지 방법을 사용하면 호출자가 키나 값이 문자열이 아닌 항목을 삽입할 수 있으므로 권장되지 않습니다. 대신 setProperty 메소드를 사용하십시오. "안전하지 않은" Properties 객체(즉, 문자열이 아닌 키나 값을 포함함)에서 store 또는 save 메소드를 호출하면 호출이 실패합니다. 마찬가지로, "안전하지 않은" Properties 개체(즉, 문자열이 아닌 키 포함)에서 propertyNames 또는 list 메서드를 호출하면 호출이 실패합니다.
속성 파일은 JAVA 애플리케이션에서 흔히 볼 수 있으며 특히 중요한 파일 유형이기도 합니다. 애플리케이션의 일부 정보를 구성하는 데 사용되지만 일반적으로 이 정보는 상대적으로 작은 데이터이므로 데이터베이스 파일을 사용하여 저장할 필요는 없지만 파일을 통해 직접 저장하는 경우 일반 텍스트 파일을 사용합니다. , 저장해서 읽을 수도 있지만, 속성 파일로 저장하면 다릅니다. JAVA 패키지에는 속성 파일을 조작하기 위한 특수 클래스가 있습니다. . 이 클래스는 java.uitl.Properties 클래스입니다. Properties 클래스는 컬렉션 클래스이므로 Properties는 컬렉션의 속성을 읽고 씁니다.
참고: 다음 코드는 발생한 예외를 캡처하지 않습니다. 프로그램을 작성할 때 캡처된 예외를 처리하는 데 주의해야 합니다.
Properties 클래스는 Hashtable 클래스를 상속하고 키 값에 해당하는 저장 방법을 채택합니다. Properties 클래스를 사용하여 속성 파일을 관리할 때 어떤 편의성이 있습니까? Properties 클래스에는 Properties 속성 파일을 읽고 쓰기 위한 특별한 읽기 및 쓰기 메서드가 있습니다. 읽기 및 쓰기 형식에 대해서는 걱정할 필요가 없습니다. Properties 클래스에 대한 읽기 및 쓰기 스트림만 제공하면 됩니다. 속성 파일을 읽고 쓰는 데 사용되는 속성 메서드는 다음과 같습니다.
다음과 같이 코드 코드를 복사합니다.
//속성 파일 스트림을 읽는 방법
공개 무효 로드(InputStream inStream)에서 IOException이 발생합니다. {}
//속성 파일 스트림을 작성하는 방법
public void store(OutputStream out, String comments)에서 IOException이 발생합니다. {}
먼저 속성 파일에서 속성을 읽는 방법을 살펴보겠습니다.
다음 내용으로 prop.properties라는 새 속성 파일을 생성했다고 가정합니다.
다음과 같이 코드 코드를 복사합니다.
사이트 이름=abcjava
사이트URL=www.abcjava.com
우리가 해야 할 첫 번째 단계는 파일을 Properties 클래스 객체로 읽어들이는 것입니다. 로드의 한 매개변수는 InputStream이므로, 우리는 Prop.properties 경로로 속성 파일을 읽어들이기 위해 InputStream 서브클래스 FileInputStream을 사용할 수 있습니다. FileInputStream(문자열 이름) 생성자를 사용합니다.
다음과 같이 코드 코드를 복사합니다.
Properties prop = new Properties();//속성 컬렉션 객체
FileInputStream fis = new FileInputStream("prop.properties");//속성 파일 스트림
prop.load(fis);//속성 파일 스트림을 Properties 객체에 로드합니다.
속성 파일을 읽는 방법을 알고 나면 또 다른 중요한 작업이 있는데, 이는 속성 파일을 수정하고 새 속성을 추가하는 것입니다. 여기서는 공용 void 저장소(OutputStream 출력, 문자열 주석) 메서드를 사용합니다. 속성 컬렉션 OutputStream 스트림의 경우 OutputStream 스트림과 마찬가지로 해당 하위 클래스 FileOutputStream(문자열 이름)도 여기에서 사용되므로 여기서는 자세히 설명하지 않겠습니다.
속성 컬렉션을 파일에 저장하기 전에 속성 컬렉션에 새 속성을 수정하고 추가하는 방법이 한 가지 더 있습니다. 여기서 사용되는 메서드 중 하나는 setProperty(String key, String)입니다. value), 이 방법은 속성 컬렉션에 지정된 키가 존재하는 경우 해당 키의 값을 수정하는 것입니다. 존재하지 않는 경우 키-값 관계를 통해서도 저장되지만 주목할 가치가 있습니다. Properties 클래스가 상속한다는 점 Hashtable이므로 Hashtable의 put 및 putAll 메서드를 사용하여 저장하는 것도 가능하지만 이 두 메서드를 사용하면 호출자가 키나 값이 문자열이 아닌 항목을 삽입할 수 있으므로 사용하지 않는 것이 좋습니다. 대신 setProperty 메소드를 사용하십시오. "위험에 처한"(즉, 문자열이 아닌 키나 값을 포함하는) Properties 객체에 대해 store 또는 save 메소드가 호출되면 호출이 실패합니다. 속성을 수정, 추가, 저장하는 절차를 살펴보겠습니다.
다음과 같이 코드 코드를 복사합니다.
//sitename의 속성값을 수정합니다.
prop.setProperty("사이트명", "박스코드");
//새 속성 스튜디오 추가
prop.setProperty("스튜디오", "박스코드 스튜디오");
//파일 출력 스트림
FileOutputStream fos = new FileOutputStream("prop.properties");
//Properties 컬렉션을 스트림에 저장합니다.
prop.store(fos, "저작권 (c) Boxcode Studio");
fos.close();//스트림을 닫습니다.
다음은 전체 프로그램의 소스 코드입니다.
다음과 같이 코드 코드를 복사합니다.
import java.io.FileInputStream;
import java.io.FileOutputStream;
java.util.Properties 가져오기;
공개 클래스 PropertyEditor {
public static void main(String[] args)에서 예외가 발생합니다.
Properties prop = new Properties() // 속성 컬렉션 객체
FileInputStream fis = new FileInputStream("prop.properties");//속성 파일 입력 스트림
prop.load(fis);//속성 파일 스트림을 Properties 객체에 로드합니다.
fis.close(); // 스트림을 닫습니다.
// 속성 값을 가져옵니다. 사이트 이름이 파일에 정의되어 있습니다.
System.out.println("속성 값 가져오기: sitename=" + prop.getProperty("sitename"));
// 속성 값을 가져옵니다. 국가는 파일에 정의되어 있지 않습니다. 이 프로그램에서는 기본값이 반환되지만 속성 파일은 수정되지 않습니다.
System.out.println("속성 값 가져오기: 국가=" + prop.getProperty("국가", "중국"));
// sitename의 속성 값을 수정합니다.
prop.setProperty("사이트명", "박스코드");
//새 속성 스튜디오 추가
prop.setProperty("스튜디오", "박스코드 스튜디오");
//파일 출력 스트림
FileOutputStream fos = new FileOutputStream("prop.properties");
// 속성 컬렉션을 스트림에 저장합니다.
prop.store(fos, "저작권 (c) Boxcode Studio");
fos.close();//스트림을 닫습니다.
}
}