【发布时间】:2012-09-27 14:01:19
【问题描述】:
根据我之前的问题java-util-currency-getinstance-throwing-illegalargumentexception,我正在查看java.util.Currency的源代码
我看到了如下sn-p的代码:
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 枚举)。代码可在此处获得:github.com/scout-2766/Iso4J/blob/master/README.md(免费)