우리가 일반적으로 프로그램을 작성할 때 일부 매개변수는 자주 변경되며 이러한 변경은 우리가 예측하는 것이 아닙니다. 예를 들어, 우리는 개발 중에 로컬 데이터베이스에 연결하므로 데이터 운영을 위한 이 모듈을 만들기 위해 IP, 데이터베이스 이름, 테이블 이름, 데이터베이스 호스트 및 기타 정보가 로컬에 있습니다. , 그러면 위의 정보를 프로그램에 쓸 수 없습니다. 일반적으로 우리의 접근 방식은 구성 파일을 사용하여 문제를 해결하는 것입니다.
각 언어마다 지원되는 구성 파일 형식이 있습니다. 예를 들어 Python은 .ini 파일을 지원합니다. .ini 파일 읽기 및 쓰기를 지원하는 내부 ConfigParser 클래스가 있기 때문에 프로그래머는 이 클래스에서 제공하는 메서드에 따라 .ini 파일을 자유롭게 조작할 수 있습니다. Java에서 Java는 .properties 파일 읽기 및 쓰기를 지원합니다. JDK에 내장된 java.util.Properties 클래스는 .properties 파일을 조작하는 데 편리함을 제공합니다.
1. .properties 파일 형식
# 以下为服务器、数据库信息 dbPort = localhost databaseName = mydb dbUserName = root dbPassword = root # 以下为数据库表信息 dbTable = mytable # 以下为服务器信息 ip = 192.168.0.9
위 파일에서는 파일 이름이 test.properties 파일이라고 가정합니다. 그중 #으로 시작하는 줄은 주석 정보이고, 등호 "="의 왼쪽에 있는 줄은 키(key)라고 하고, 등호 "="의 오른쪽에 있는 줄은 값(value)이라고 합니다. (실제로 우리는 이것을 종종 키-값 쌍이라고 부릅니다.) key는 우리 프로그램에서 변수여야 합니다. 값은 실제 상황에 따라 구성됩니다.
2. JDK의 속성 클래스
Properties 클래스는 Java.util에 존재합니다. 이 클래스는 여러 가지 주요 메서드를 제공하는 Hashtable에서 상속됩니다.
1. getProperty(String key), 지정된 키를 사용하여 이 속성 목록에서 속성을 검색합니다. 즉, 매개변수 키를 통해 키에 해당하는 값을 얻는다.
2. load(InputStream inStream)는 입력 스트림에서 속성(키 및 요소 쌍) 목록을 읽습니다. 파일을 로드하여 지정된 파일(예: 위의 test.properties 파일)에서 모든 키-값 쌍을 가져옵니다. getProperty(문자열 키)로 검색합니다.
3. setProperty(문자열 키, 문자열 값), Hashtable 메소드 put을 호출합니다. 기본 클래스의 put 메소드를 호출하여 키-값 쌍을 설정합니다.
4. store(OutputStream out,String comments)는 이 Properties 테이블의 속성(키 및 요소 쌍) 목록을 load 메서드를 사용하여 Properties 테이블에 로드하는 데 적합한 형식으로 출력 스트림에 씁니다. 로드 방법과 달리 이 방법은 지정된 파일에 키-값 쌍을 씁니다.
5. Clear()는 로드된 모든 키-값 쌍을 지웁니다. 이 메서드는 기본 클래스에서 제공됩니다.
위의 방법으로 .properties 파일을 조작할 수 있습니다!
3. Java 읽기 속성 파일 예
다음 내용이 포함된 box.properties 속성 파일이 있습니다.
Color=Red Name=Box Length=18 Width=7 Heigth=8
속성 값의 경우 다음 코드를 사용할 수 있습니다.
InputStream in = null; Properties p = new Properties(); try { in = new BufferedInputStream(new FileInputStream("box.properties")); p.load(in); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Enumeration<Object> keys = p.keys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); System.out.println(key + ":" + p.getProperty(key)); }
또는
InputStream in; ResourceBundle rb = null; try { in = new BufferedInputStream(new FileInputStream("box.properties")); rb = new PropertyResourceBundle(in); } catch (FileNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } if (rb != null) { Enumeration<String> keys = rb.getKeys(); while (keys.hasMoreElements()) { String key = (String) keys.nextElement(); System.out.println(key + ":" + rb.getString(key)); } }
자세한 내용 Java 프로그램에서 속성 구성 파일을 읽는 방법에 대한 관련 기사는 PHP 중국어 웹 사이트를 참고하세요!