第12章國際化與本地化_第1頁
第12章國際化與本地化_第2頁
第12章國際化與本地化_第3頁
第12章國際化與本地化_第4頁
第12章國際化與本地化_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第12章 國際化與本地化內(nèi)容提要在程序設(shè)計(jì)領(lǐng)域,在不改寫有關(guān)代碼的前提下,讓開發(fā)出來的應(yīng)用程序能夠支持多種語言和數(shù)據(jù)格式的技術(shù)稱為國際化技術(shù)。引入國際化機(jī)制的目的在于提供自適應(yīng)的、更友好的用戶界面,而并不改變程序的其他功能和業(yè)務(wù)邏輯。本章要點(diǎn) 本章首先介紹國際化的概念和Locale類和TimeZone類,然后介紹與國際化有關(guān)的類,如Date類、Calendar類和GregorianCalendar類,接下來介紹日期和數(shù)字的格式化,最后介紹資源包的使用。12.1 國際化(i18n) 人們常用i18n這個(gè)詞作為“國際化”的簡(jiǎn)稱,其來源是英文單詞internationalization的首末字母i和

2、n以及它們之間有18個(gè)字符。 國際化是商業(yè)系統(tǒng)中不可或缺的一部分,它是學(xué)習(xí)Java技術(shù)必須掌握的技能。許多Java框架為實(shí)現(xiàn)軟件產(chǎn)品的國際化提供了強(qiáng)有力的支持,開發(fā)人員只需做很少的工作就可以實(shí)現(xiàn)軟件的國際化。下面首先介紹與國際化密切相關(guān)的Locale類和TimeZone類。 12.1.1 Locale類 Locale類的實(shí)例表示一個(gè)特定的地理、政治或文化區(qū)域。在涉及地區(qū)信息的操作中可使用該類對(duì)象為用戶提供地區(qū)信息。例如,顯示本地區(qū)習(xí)慣的日期、數(shù)字和貨幣等。該類有下面3個(gè)構(gòu)造方法:public Locale(String language)public Locale(String languag

3、e, String country)public Locale(String language, String country, String variant)參數(shù)language指定一個(gè)有效的語言代碼。country參數(shù)指定一個(gè)有效的國家代碼。variant參數(shù)是針對(duì)廠商或?yàn)g覽器的代碼。 12.1.1 Locale類 表12.1 ISO 639語言代碼示例 表12.2 ISO 3166國家代碼示例代 碼語 言de德語el希臘語en英語es西班牙語fr法語it意大利語ja日語pt葡萄牙語ru俄語zh漢語代 碼國 家AU澳大利亞BR巴西CA加拿大CN中國EG埃及FR法國DE德國IN印度GB英國U

4、S美國12.1.1 Locale類 為了方便,Locale類提供了許多常量,可以創(chuàng)建Locale對(duì)象,如下面代碼創(chuàng)建一個(gè)地區(qū)是美國的Locale對(duì)象: Locale local = Locale.US;12.1.1 Locale類下面是Locale類的常用方法:public static Locale getDefault():返回在運(yùn)行程序的JVM默認(rèn)的區(qū)域?qū)ο?。public static Locale getAvailableLocales():返回所有安裝的區(qū)域的數(shù)組。public String getLanguage():返回由兩個(gè)小寫字母組成的語言代碼。public String g

5、etCountry():返回由兩個(gè)大寫字母組成的國家代碼。public String getDisplayLanguage():返回默認(rèn)地區(qū)的語言名稱。public String getDisplayLanguage(Locale inLocale):返回指定地區(qū)的語言名稱。12.1.1 Locale類public String getDisplayCountry():返回當(dāng)前地區(qū)表示的國家名稱。public String getDisplayCountry(Locale inLocale):返回指定地區(qū)表示的國家名稱。public String getDisplayName():返回默認(rèn)地區(qū)

6、的名稱。public String getDisplayName(Locale inLocale):返回指定地區(qū)的名稱。public static void setDefault(Locale newLocale):為當(dāng)前的JVM實(shí)例設(shè)置默認(rèn)的地區(qū)。12.1.1 Locale類 如果一個(gè)操作需要指定Locale,則該操作稱為地區(qū)敏感的(locale-sensitive)。例如,顯示時(shí)間或日期數(shù)據(jù)是一個(gè)地區(qū)敏感操作,應(yīng)該根據(jù)用戶地區(qū)的習(xí)慣來格式化。 Java類庫中有很多類都包含地區(qū)敏感的方法。例如Date、Calendar、DateFormat、NumberFormat都是地區(qū)敏感的。12.1.

7、1 Locale類程序12.1 LocaleDemo.java程序運(yùn)行結(jié)果為:Languange code = zhCountry code = CNLanguange name = 中文Country name = 中國Locale name = 中文(中國)Run12.1.2 TimeZone類 TimeZone抽象類表示時(shí)區(qū)偏量。 通常使用該類的靜態(tài)方法getDefault()創(chuàng)建TimeZone對(duì)象,也可以使用getTimeZone()方法返回時(shí)區(qū)對(duì)象,這兩個(gè)方法的格式為:public static TimeZone getDefaultgetDefault() ():返回運(yùn)行程序主機(jī)

8、所在的時(shí)區(qū)對(duì)象。public static TimeZone getTimeZone(StringgetTimeZone(String ID)ID):返回指定時(shí)區(qū)ID所指定的時(shí)區(qū)對(duì)象。參數(shù)ID可以是一個(gè)縮寫,如“PST”表示太平洋標(biāo)準(zhǔn)時(shí)間,也可以是一個(gè)完整的名稱,如“Asia/Shanghai”表示中國標(biāo)準(zhǔn)時(shí)間。12.1.2 TimeZone類 TimeZone類的常用方法包括: public static String getAvailableIDs():返回系統(tǒng)支持的所有的時(shí)區(qū)ID。 public String getDisplayName():返回默認(rèn)地區(qū)的時(shí)區(qū)顯示名稱。 public

9、String getID():返回該時(shí)區(qū)的ID。12.1.2 TimeZone類下面代碼演示了TimeZone類的使用。程序12.2 TimeZoneDemo.java程序運(yùn)行結(jié)果為:程序運(yùn)行結(jié)果為:中國標(biāo)準(zhǔn)時(shí)間中國標(biāo)準(zhǔn)時(shí)間Asia/ShanghaiRun12.2 時(shí)間、日期和日歷 12.2.1 Date類 12.2.2 Calendar類 12.2.3 GregorianCalendar類12.2.1 Date類 在Java語言中,時(shí)間是用long型數(shù)據(jù)表示的,它是從格林尼治標(biāo)準(zhǔn)時(shí)間(GMT)1970年1月1日0點(diǎn)0分0秒到當(dāng)前時(shí)刻的毫秒數(shù)。使用System.currentTimeMilli

10、s()方法可以返回當(dāng)前的時(shí)間。還可以使用java.util.Date類來獲得當(dāng)前時(shí)間。 12.2.1 Date類 DateDate類的大多數(shù)方法已經(jīng)被廢棄,沒有被廢類的大多數(shù)方法已經(jīng)被廢棄,沒有被廢棄的構(gòu)造方法有:棄的構(gòu)造方法有: public Date():創(chuàng)建一個(gè)Date對(duì)象,它表示從格林尼治標(biāo)準(zhǔn)時(shí)間到現(xiàn)在的毫秒數(shù)。 public Date(long date):使用參數(shù)date創(chuàng)建一個(gè)Date對(duì)象。12.2.1 Date類沒有被廢棄的其他方法有:沒有被廢棄的其他方法有: public boolean after(Date when):測(cè)試當(dāng)前日期是否在指定的日期之后。 public bo

11、olean before(Date when):測(cè)試當(dāng)前日期是否在指定的日期之前。 public long getTime():返回該Date對(duì)象表示的GMT時(shí)間從1970年1月1日0點(diǎn)0分0秒到當(dāng)前時(shí)刻的毫秒數(shù)。 public void setTime(long time):設(shè)置Date對(duì)象表示的時(shí)間。12.2.1 Date類程序12.3 DateDemo.javaimport java.util.Date;public class DateDemo public static void main(String args) Date now = new Date(); System.out.

12、println(now); System.out.println(System.currentTimeMillis(); System.out.println(new Date(System.currentTimeMillis(); 程序可能的運(yùn)行結(jié)果為:程序可能的運(yùn)行結(jié)果為:Sun Jan 13 21:36:35 CST 20131358084195390Sun Jan 13 21:36:35 CST 201312.2.2 Calendar類 java.util.Calendar類對(duì)象表示日歷中某個(gè)特定時(shí)刻。Calendar類是抽象類,可以通過靜態(tài)方法getInstance()的某種重載形式

13、獲得某個(gè)地區(qū)的日歷對(duì)象,這些方法如下:public static Calendar getInstance():返回默認(rèn)時(shí)區(qū)和默認(rèn)地區(qū)的日歷對(duì)象。public static Calendar getInstance(TimeZone zone):返回指定時(shí)區(qū)和默認(rèn)地區(qū)的日歷對(duì)象。public static Calendar getInstance(Locale aLocale):返回默認(rèn)時(shí)區(qū)和指定地區(qū)的日歷對(duì)象。public static Calendar getInstance(TimeZone zone ,Locale aLocale):返回指定時(shí)區(qū)和指定地區(qū)的日歷對(duì)象。12.2.2 Ca

14、lendar類 在Calendar類中定義了許多對(duì)日歷非常有用的常量,例如Calendar.AM和Calendar.PM分別表示12小時(shí)制的上午和下午,Calendar.JANUARY、Calendar.FEBRUARY表示日歷的一月、二月等。12.2.2 Calendar類 Calendar 類還為日歷對(duì)象定義了許多日歷字段,日歷類型值用int型存儲(chǔ),以常量的形式定義,如:表12.3 Calendar類的常量常量名說 明ERA表示日歷中的紀(jì)元YEAR、MONTH、DATE表示日歷中的年、月、日HOUR、MINUTE、SECOND表示日歷中的時(shí)、分、秒DAY_OF_YEAR表示年的第幾天WEE

15、K_OF_YEAR表示年的第幾個(gè)星期DAY_OF_MONTH表示月的第幾天,月份的范圍是0-11WEEK_OF_MONTH表示月的第幾個(gè)星期DAY_OF_WEEK表示星期的第幾天,星期日為1HOUR_OF_DAY表示天的小時(shí)12.2.2 Calendar類 在Calendar 類的常用方法:public int get(int field):返回給定日歷字段的值。public final Date getTime():返回表示該日歷時(shí)間值的Date對(duì)象。public final void setTime(Date date):用給定的Date對(duì)象設(shè)置日歷對(duì)象的時(shí)間。public TimeZon

16、e getTimeZone():返回日歷對(duì)象的時(shí)區(qū)public void setTimeZone(TimeZone value):用給定的時(shí)區(qū)值設(shè)置日歷對(duì)象的時(shí)區(qū)。public long getTimeInMillis():以毫秒的形式返回日歷的時(shí)間。12.2.2 Calendar類public void set(int field, int value):用給定的value值設(shè)置日歷指定的字段field值。public void set(int year, int month, int date):用給定的值設(shè)置日歷對(duì)象的年、月、日。public void set(int year, int

17、 month, int date, int hrs, int min):用給定的值設(shè)置日歷對(duì)象的年、月、日、小時(shí)和分鐘。public void set(int year, int month, int date, int hrs, int min, int sec):用給定的值設(shè)置日歷對(duì)象的年、月、日、小時(shí)、分鐘和秒。12.2.2 Calendar類 下面的dotw()方法用日期字段指定一個(gè)日期,并計(jì)算某個(gè)日期是一周中的哪一天:public static int dotw(int year, int month, int date) Calendar cal = new GregorianCa

18、lendar(); cal.set(Calendar.YEAR, year); cal.set(Calendar.MONTH, month); cal.set(Calendar.DATE, date); return cal.get(Calendar.DAY_OF_WEEK);12.2.3 GregorianCalendar類 java.util.GregorianCalendar類是Calendar類的具體子類,它是世界上大部分國家使用的標(biāo)準(zhǔn)的日歷系統(tǒng),通常被稱為格利高歷(Gregorian Calendar),以紀(jì)念羅馬教皇格利高十三世,是他主持創(chuàng)建了該日歷。12.2.3 Gregoria

19、nCalendar類 GregorianCalendar類中定義了多個(gè)構(gòu)造方法,比較重要的如下:public GregorianCalendar():在默認(rèn)時(shí)區(qū)和默認(rèn)地區(qū)創(chuàng)建一個(gè)日歷對(duì)象。public GregorianCalendar(int year, int month, int date, int hrs, int min, int sec):用給定的年、月、日、時(shí)、分、秒創(chuàng)建一個(gè)默認(rèn)時(shí)區(qū)和默認(rèn)地區(qū)日歷對(duì)象。在該構(gòu)造方法中可以省略秒或時(shí)分秒,省略的值為0。public GregorianCalendar(TimeZone zone, Locale locale)12.2.3 Grego

20、rianCalendar類程序12.4 CalendarDemo.java Run12.3 數(shù)據(jù)格式化 時(shí)間數(shù)據(jù)和數(shù)值數(shù)據(jù)在不同的地區(qū)表示格式可能不同。Java提供了DateFormat類和NumberFormat類對(duì)時(shí)間和數(shù)值進(jìn)行格式化。12.3 數(shù)據(jù)格式化12.3.1 DateFormat類12.3.2 NumberFormat類12.3.1 DateFormat類 要輸出適合習(xí)慣的時(shí)間格式可以使用DateFormat類對(duì)Date格式化。DateFormat類可以將日期和時(shí)間格式化成多種形式。 要使用DateFormat類格式化日期和時(shí)間,可以使用DateFormat類的下面的靜態(tài)方法獲得

21、DateFormat類的對(duì)象: 12.3.1 DateFormat類 public static final DateFormat getDateInstance():返回默認(rèn)地區(qū)的使用默認(rèn)格式化風(fēng)格的格式化器。 public static final DateFormat getDateInstance(int style):返回默認(rèn)地區(qū)的使用指定格式化風(fēng)格的格式化器。參數(shù)style可以使用DateFormat類的4個(gè)常量之一。它們分別是SHORT、MEDIUM、LONG和FULL。這4個(gè)常量指定用多長的格式表示的日期和時(shí)間。SHORT使用短格式,如13-8-20;MEDIUM使用中等長度的

22、格式,如2013-8-20;LONG是較長的形式,如2013年8月20日;FULL是完全的形式,如2013年8月20日 星期五。12.3.1 DateFormat類 public static final DateFormat getDateTimeInstance():返回默認(rèn)地區(qū)的使用默認(rèn)格式化風(fēng)格的日期/時(shí)間格式化器。 public static final DateFormat getDateTimeInstance(int style, Locale aLocale):返回指定地區(qū)的使用指定格式化風(fēng)格的日期/時(shí)間格式化器。 public static final DateFormat

23、 getInstance():返回日期和時(shí)間都使用SHORT風(fēng)格的默認(rèn)的日期/時(shí)間格式化器。12.3.1 DateFormat類 得到DateFormat類的對(duì)象后,就可以使用該類的format()方法將Date對(duì)象格式化成字符串,也可以使用該類的parse()將字符串解析成一個(gè)Date對(duì)象,這兩個(gè)方法的格式如下:public final String format(Date date):將參數(shù)的Date對(duì)象格式化成指定的字符串。public Date parse(String source) throws ParseException:將參數(shù)字符串解析成Date對(duì)象 12.3.1 DateF

24、ormat類 程序12.5 DateFormatDemo.javaRun12.3.1 DateFormat類 DateFormat類是一個(gè)抽象類,它的一個(gè)具體的子類SimpleDateFormat類允許用戶使用指定的模式格式化日期和時(shí)間。下面是該類的構(gòu)造方法:public SimpleDateFormat(String pattern)public SimpleDateFormat(String pattern, Local locale) 參數(shù)pattern是一個(gè)模式字符串,它由具有特殊意義的字符組成。例如,y表示年份,M表示月份,d表示這個(gè)月的某一天,G表示紀(jì)元標(biāo)志等。有關(guān)詳細(xì)的信息,請(qǐng)參

25、閱API文檔。 參數(shù)locale用來指定地區(qū),如果沒有指定該參數(shù)則使用默認(rèn)地區(qū)。12.3.1 DateFormat類 程序12.6 SimpleDateFormatDemo.java程序運(yùn)行結(jié)果為:程序運(yùn)行結(jié)果為:公元 2010.02.28 時(shí)間 00:44:10 CST12 oclock 上午, 中國標(biāo)準(zhǔn)時(shí)間02010.二月.28 公元 12:44 上午星期日, 28 二月 2010 00:44:10 +0800100228004410+08002010-02-28T00:44:10.156+0800Run12.3.2 NumberFormat類 使用java.text.NumberForm

26、at類可以格式化數(shù)字,該類提供了格式化和解析任何地區(qū)數(shù)字的方法。代碼可以完全獨(dú)立于地區(qū)習(xí)慣,比如,小數(shù)點(diǎn)、千位分隔符、特殊的十進(jìn)制位數(shù)等,甚至不用考慮數(shù)字是否是十進(jìn)制的。 為了格式化當(dāng)前地區(qū)的一個(gè)數(shù)字,可以使用NumberFormat類的工廠方法得到該類的實(shí)例,這些方法包括:12.3.2 NumberFormat類 public static NumberFormat getInstance():返回當(dāng)前默認(rèn)地區(qū)的普通數(shù)字格式。 public static NumberFormat getInstance (Locale inLocale):返回指定地區(qū)的普通數(shù)字格式。 public stat

27、ic NumberFormat getNumberInstance (Locale inLocale):返回指定地區(qū)的一般數(shù)字的格式。 public static NumberFormat getIntegerInstance (Locale inLocale):返回指定地區(qū)的整數(shù)的數(shù)字格式。12.3.2 NumberFormat類 程序12.7 NumberFormatDemo.java 程序運(yùn)行結(jié)果為:程序運(yùn)行結(jié)果為:Format long : 3,000Format Long : 5,000Parsed Number 1 : 8000Parsed Number 2 : 9Run12.3.

28、2 NumberFormat類 表示貨幣或百分比的數(shù)字也是與地區(qū)有關(guān)的。例如,數(shù)字5000.50,在美國貨幣表示中為$5,000.50,在法國貨幣中顯示為5000,50F。public static NumberFormat getCurrencyInstance (Locale inLocale):返回指定地區(qū)的貨幣的格式。public static NumberFormat getPercentInstance (Locale inLocale):返回指定地區(qū)的百分比格式。使用百分比格式,小數(shù)0.53將顯示為53%。12.3.2 NumberFormat類 例如,要將5000.555作為美

29、國的貨幣值顯示,應(yīng)該使用下列代碼:NumberFormat currencyFormat = NumberFormat.getCurrencyInstance(Locale.US);System.out.println(currencyFormat.format(5000.555); 輸出結(jié)果為: $5,000.56 如果將地區(qū)改為Locale.GERMANY,輸出結(jié)果為:5.000,56。12.3.2 NumberFormat類 在java.util包中提供了Currency類。使用NumberFormat類的getCurrency()方法可以得到Currency類的對(duì)象。Currency類

30、的常用方法有:public String getCurrencyCode():返回該貨幣對(duì)象的ISO-4217代碼。public String getSymbol():返回該貨幣對(duì)象默認(rèn)地區(qū)的符號(hào)。12.3.2 NumberFormat類程序12.8 CurrencyFormatDemo.java 程序運(yùn)行結(jié)果為:Format currency (default): ¥999.99Format currency (US): $999.99Parsed currency 2 (US) : 1234.12Currency code :CNYCurrency symbol :¥Run12.4 資源包

31、的使用 一個(gè)Java應(yīng)用程序在運(yùn)行時(shí)能夠根據(jù)客戶端請(qǐng)求所來自的國家/地區(qū)、語言的不同而顯示不同的用戶界面。 例如,若請(qǐng)求來自一臺(tái)中文操作系統(tǒng)的客戶端計(jì)算機(jī),則應(yīng)用程序響應(yīng)界面中的各種標(biāo)簽、錯(cuò)誤提示和幫助信息均使用中文文字;如果客戶端計(jì)算機(jī)是英文操作系統(tǒng),則應(yīng)用程序也能識(shí)別并自動(dòng)以英文界面做出響應(yīng)。12.4.1 屬性文件 創(chuàng)建國際化應(yīng)用程序首先需創(chuàng)建資源包,資源包可以作為文件存儲(chǔ)或者定義為一個(gè)類。 若作為文件存儲(chǔ)則稱為屬性文件,它的擴(kuò)展名為.properties,將不同語言的文本信息存儲(chǔ)在屬性文件中。屬性文件中存放的是“鍵/值”對(duì)的文本。每個(gè)鍵都唯一標(biāo)識(shí)特定于某一地區(qū)的對(duì)象。鍵均為字符串,值可以

32、是字符串,也可以是其他任意對(duì)象類型。 12.4.1 屬性文件 屬性文件名有多種寫法,但一般格式為:BaseName_LanguageCode_CountryCpertiesBaseName_LanguageCode_CountryCperties 這里BaseName是基本名稱,它可以是任意名稱。為了讓ResourceBundle對(duì)象找到屬性文件,文件名必須有基本名稱。如果包含其他部分,則用下劃線分隔。后面是兩個(gè)字符的語言代碼,再后面是兩個(gè)字符的國家代碼。屬性文件的擴(kuò)展名為.properties。12.4.1 屬性文件 假設(shè)讓該程序支持英語、德語和漢語三種語言,我們

33、需要建立三個(gè)屬性文件,它們具有相同的鍵。假設(shè)基本名稱是MessageBundle,我們要建立的屬性文件如下:英語版,MessageBundle_en_US.properties,內(nèi)容如下:greetings=Hello.farewell=Goodbye.inquiry=How are you?德語版,MessageBundle_de_DE.properties,內(nèi)容如下:greetings=Hallo.farewell=Tsch.inquiry=Wie gehts?12.4.1 屬性文件 漢語版的,MessageBundle_zh_CN.properties,內(nèi)容如下:greetings=u4

34、f60u597d / “你好你好”的的Unicode碼碼farewell=u518du89c1inquiry=u4f60u600eu4e48u6837uff1f12.4.1 屬性文件 對(duì)包含漢字的屬性文件,必須使用Java的native2asciinative2ascii命令進(jìn)行轉(zhuǎn)換,該命令負(fù)責(zé)將非西歐文字轉(zhuǎn)換成系統(tǒng)可以識(shí)別的文字。 臨時(shí)屬性文件Mperties,內(nèi)容如下:greetings=你好farewell=再見inquiry=你怎么樣? 使用native2ascii命令進(jìn)行轉(zhuǎn)換,如下所示:native2ascii native2ascii Mpe

35、rtiesMperties MessageResource_zh_CN.propertiesMessageResource_zh_CN.properties 這些屬性文件應(yīng)保存在類查找路徑中,在Eclipse中應(yīng)存放在項(xiàng)目的src目錄下。12.4.2 使用ResourceBundle類 創(chuàng)建了屬性文件后,可以使用java.util.ResourceBundle類查找和讀取特定于用戶所在地區(qū)的屬性文件,并通過ResourceBundle類對(duì)象的getString()方法得到某個(gè)鍵的值。 ResourceBundle是抽象類,通過它的getBundle()靜態(tài)方法創(chuàng)建一個(gè)實(shí)例,

36、它的兩個(gè)重載的方法格式如下: 12.4.2 使用ResourceBundle類public static public static ResourceBundleResourceBundle getBundle(StringgetBundle(String baseNamebaseName) )public static public static ResourceBundleResourceBundle getBundle(StringgetBundle(String baseNamebaseName, Locale , Locale localelocale) ) 這里,這里,baseNa

37、mebaseName為屬性文件的基本名稱。為屬性文件的基本名稱。localelocale為地區(qū)類的實(shí)例。若缺省地區(qū)參數(shù),則為地區(qū)類的實(shí)例。若缺省地區(qū)參數(shù),則返回默認(rèn)地區(qū)的資源包對(duì)象,若指定地區(qū)對(duì)象返回默認(rèn)地區(qū)的資源包對(duì)象,若指定地區(qū)對(duì)象,則返回指定地區(qū)的資源包對(duì)象。,則返回指定地區(qū)的資源包對(duì)象。12.4.2 使用ResourceBundle類 例如:例如: ResourceBundle bundle= ResourceBundle.getBundle( MessageBundle, Locale.CHINA); 將加載與漢語地區(qū)對(duì)應(yīng)的屬性文件。如果不能找到合適的屬性文件,ResourceBun

38、dle對(duì)象就會(huì)返回默認(rèn)的屬性文件。默認(rèn)的屬性文件名是基本名稱加擴(kuò)展名properties。如果找不到默認(rèn)屬性文件,就會(huì)拋出一個(gè)java.util.MissingResourceException異常。 12.4.2 使用ResourceBundle類 要讀取屬性文件中的值,需要調(diào)用ResourceBundle類的getString()方法,為該方法傳遞一個(gè)鍵,返回該鍵的值: public String getString(String key) 如果找不到指定的鍵,將拋出MissingResourceException異常。 還可以調(diào)用ResourceBundle類的getKeys()方法返回

39、一個(gè)包含鍵的Enumeration枚舉對(duì)象,然后在該對(duì)象上迭代就可以得到所有鍵值。12.4.2 使用ResourceBundle類程序12.9 I18NSample.java Run12.4.3 使用ListResourceBundle類 ListResourceBundle類也用來存放資源,它不僅能存放字符串,還能存放其他類型對(duì)象,但鍵仍然是字符串類型。 12.4.3 使用ListResourceBundle類import java.util.*;public class ListResource extends ListResourceBundle Override protected Object getContents() ret

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論