내 프로그램의 여러 상수 (예 : MAXARRAYSIZE)가있는 데이터 파일을 읽고 싶습니다.
다음과 같이 입력하면 ConstantsClassName.MAXARRAYSIZE와 같이이 상수에 액세스 할 수 있습니다. 이 클래스는 어떻게 구현합니까?파일에 상수 읽기 #java
데이터 파일에서 일단 할당되면이 상수는 프로그램 실행 중에 다시 절대로 값을 변경하지 않습니다.
감사합니다.
내 프로그램의 여러 상수 (예 : MAXARRAYSIZE)가있는 데이터 파일을 읽고 싶습니다.
다음과 같이 입력하면 ConstantsClassName.MAXARRAYSIZE와 같이이 상수에 액세스 할 수 있습니다. 이 클래스는 어떻게 구현합니까?파일에 상수 읽기 #java
데이터 파일에서 일단 할당되면이 상수는 프로그램 실행 중에 다시 절대로 값을 변경하지 않습니다.
감사합니다.
ConstantsClassName
클래스의 정적 블록을 사용하십시오.
public class ConstantsClassName{
public static final String MAXARRAYSIZE;
static{
// read your file and store the data in;
MAXARRAYSIZE = valueRetrievedFromFile;
}
}
MAXARRAYSIZE
당신이 상수 선언에 대한 Java 규약을 따르는 경우 MAX_ARRAY_SIZE
을해야합니다.
고마워! 외부는 간단합니다 : public class ConstantsclassName {...} – user1714575
당신은 환영합니다 :) 예. 나는 클래스 선언을 추가했다. – davidxxx
파일에서 상수의 많은 자신의 경우에, 당신은 코드의 조각 이하로 사용할 수 있습니다
public static final HashMap<String, String> keyValues = new HashMap<>();
static{
BufferedReader br = null;
String line = null;
try{
br = new BufferedReader(new FileReader("datafile.txt"));
while((line=br.readLine())!=null){
//if Constant name and Value is separated by space
keyValues.put(line.split(" ")[0], line.split(" ")[1]);
}
}catch(IOException e){
e.printStackTrace();
}
}
지금 당신이
같은 일정에 대해이 값을 얻기 위해 된 KeyValues의 HashMap을 사용 keyValues.get ("MAXARRAYSIZE");
이렇게하면 여러 상수에 대해 여러 상수 변수를 정의 할 필요가 없으며 모든 상수와 해당 값을 저장할 수있는 keyValues 만 HashMap만으로 충분합니다. 희망이 도움이됩니다.
속성 파일을 만들고 상수 이름과 값을 키 - 값 쌍으로 추가 할 수 있습니다. 그런 다음 resourcebundle 클래스를 사용하여 데이터를 읽습니다. [이 링크] (https://docs.oracle.com/javase/tutorial/i18n/resbundle/concept.html)에서 개념을 설명합니다. [예제] (https://examples.javacodegeeks.com/core-java/util/resourcebundle/java-resourcebundle-example/) – Laxman