從我剛纔的問題java-util-currency-getinstance-throwing-illegalargumentexception之後,我一直在尋找的java.util.Currencyjava.util.Currency中和ISO 4217個標準
的源代碼,我看到下面的代碼片段:
static {
AccessController.doPrivileged(new PrivilegedAction() {
public Object run() {
String homeDir = System.getProperty("java.home");
try {
String dataFile = homeDir + File.separator +
"lib" + File.separator + "currency.data";
DataInputStream dis = new DataInputStream(
new BufferedInputStream(
new FileInputStream(dataFile)));
if (dis.readInt() != MAGIC_NUMBER) {
throw new InternalError("Currency data is possibly corrupted");
}
....
....
....
....
if (false) {
// look for the properties file for overrides
try {
File propFile = new File(homeDir + File.separator +
"lib" + File.separator +
"currency.properties");
//more code
}
我想知道關於currency.data
或currency.properties
的位置,因爲我無法在C:\Program Files\Java\jre6\lib
內找到任何此類文件。
在rt.jar下面,我可以看到一個類CurrencyData
,它定義了一些條目,但不知道它如何與java.util.Currency
相關。
我在看public static Currency getInstance(String currencyCode) {}
看看它是如何檢查給定的貨幣代碼是否在ISO 4217列表中。 CurrencyData.properties
看起來像是用來存儲和傳遞此信息的文件Update currency data to the latest ISO 4217 standard
希望得到一些關於此的更多信息。目前我使用下面的Java版本:
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b07)
Java HotSpot(TM) 64-Bit Server VM (build 17.0-b17, mixed mode)
我創建了一個增強的ISO 4217枚舉(以及其他ISO枚舉)。該代碼可在此處獲得: https://github.com/scout-2766/Iso4J/blob/master/README.md(免費) –