이 기사의 예는 Java의 방법이 속성 구성 파일을 읽는 방법을 알려줍니다. 참조를 위해 모든 사람을 위해 공유하십시오. 특정 분석은 다음과 같습니다.
지난 이틀 동안 Java 프로젝트를 사용하고 속성 파일을 온라인으로 확인하면 다음과 같은 방법이 있습니다 세 가지 방법은 최상의 효과를 얻기 위해 최적화됩니다.
StartDate = 2011-02-07
Totalweek = 25
방법 1 : 방법 1
stweek {정적 개인 문자열 = null; FileInputStream (filepath); 파일. " +"db.properties가 classpath로 지정된 경로에 있는지 확인하십시오 ");}}} public static string getStartDate () {if (tartDate == null); return startDate;} public static string getTtotalWeek () {if (startDate == null) loads ();
위의 방법은 구성 파일 컨텐츠를 얻을 수 있지만 가장 큰 문제는 파일 경로의 위치 (즉, 코드의 Filepath 값이 다른 디스크 형성으로 이동하면)입니다. 실행 중입니다. 소스 코드를 수정하면 실행됩니다. 그렇지 않으면 오류 가보고되지만 상대 경로가 사용되면 STWEEK 클래스가 다른 백으로 이동하면 소스 코드를 수정해야합니다. 그렇지 않으면 오류가 발생합니다. 보고된다. 방법 2는이 문제를 해결할 수 있지만 여전히 몇 가지 문제가있다.
방법 2 :
stweek {inputStream은 null입니다. try {dbprops.load (is);} catch (예외 e) {System.errr.println ( "속성 파일을 읽을 수 없습니다." + "db.properties가 classPath에서 지정된 경로에 있는지 확인하십시오"); } getStartDate () {string sd = dbprops.getProperty; Totalweek;}}
이 방법의 장점은 구성 파일의 절대 경로를 지적 할 필요가 없으며 다른 패키지에 배치되었는지 또는 전체 프로젝트가 다른 디스크 형성으로 이동하든 코드는 여전히 실행될 수 있다는 것입니다 파일의 문제,이 방법에는 여전히 주요 결함이 있습니다. 왜냐하면 우리는 종종 메모리의 캐시에 파일을 구성하려고하기 때문에 읽을 때마다 읽을 때마다 하드 디스크에 액세스해야하기 때문입니다 (존재를 방문하십시오. 너무 많은 시간에)이를 위해 정적 변수와 정적 메소드를 사용하여 변수를 얻고 동시에 이러한 값의 동적로드 (로드)를 달성 할 수 있습니다. getResourceasstream ( "/date.properties");
방법 3 :
java.io.inputStream; public class stweek {정적 개인 문자열 potalwek = null; == NULL || dbprops.getProperty ( "totalweek");} catch (예외 e) {system.err.println ( "속성 파일을 읽을 수 없음" ""Asspath 중간에 지정된 경로 ";}}} public static getStartDate () {if (startDate == null) loads ();
이 방법은 파일의 내용을 캐시 할 수있을뿐만 아니라 구성 파일의 내용을 메모리에 자동으로로드 할 수 있습니다. 필요한 경우 정적 메소드이기 때문에 올바른 객체를 미리 만들 필요는 없으므로 메모리에 캐시가 있으면 기능이 메모리의 데이터를 직접 읽고 시간을 절약합니다 캐시가 없으므로 걱정할 필요가 없습니다. 사용자는 어떻게 실현되는지 알 필요가 없습니다. 참고 : (위의 내용과 관련이 없습니다. 테스트)
이 기사는 모든 사람의 Java 프로그램 설계에 도움이되기를 바랍니다.