我想讀取一個數據文件,該文件中包含幾個用於我的程序的常量(例如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
應該MAX_ARRAY_SIZE
如果按照常量聲明Java約定。
謝謝!外部簡單: 公共類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();
}
}
現在使用鍵值的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