語言

Properties.Load 方法

定義

多載

名稱 Description
Load(Reader)

從輸入字元流中讀取屬性清單(鍵與元素對),以簡單的行導向格式呈現。

Load(Stream)

從輸入位元組串流讀取屬性清單(鍵與元素對)。

Load(Reader)

從輸入字元流中讀取屬性清單(鍵與元素對),以簡單的行導向格式呈現。

[Android.Runtime.Register("load", "(Ljava/io/Reader;)V", "GetLoad_Ljava_io_Reader_Handler")]
public virtual void Load(Java.IO.Reader? reader);
[<Android.Runtime.Register("load", "(Ljava/io/Reader;)V", "GetLoad_Ljava_io_Reader_Handler")>]
abstract member Load : Java.IO.Reader -> unit
override this.Load : Java.IO.Reader -> unit

參數

reader
Reader

輸入字元串流。

屬性

例外狀況

備註

從輸入字元流中讀取屬性清單(鍵與元素對),以簡單的行導向格式呈現。

屬性是以線條來處理的。 線有兩種,自然 邏輯線。 自然線被定義為一行字元線,其終止點數要麼是一組線條終止字元(\n\r\r\n),要麼由串流的末端終止。 自然行可以是空白行、註解行,或是全部或部分鍵元素對。 邏輯行包含一對關鍵元素對的所有資料,這些資料可透過反斜線字 \元跳脫線終止符序列,分散分布在數條相鄰的自然行上。 請注意,註解欄不能以此方式延伸;每一條自然的註解線都必須有自己的註解指示器,如下所述。 從輸入開始讀取行數直到串流結束。

僅包含空白字元的自然行被視為空白,並被忽略。 註解行的第一個非空白字元為 ASCII '#''!' ;註解行也會被忽略,且不編碼鍵元素資訊。 除了行終止符外,此格式還將字元空格' '(, '\u005Cu0020'), 制表'\u005Cu0009''\t'表單'\f' (, '\u005Cu000C') 視為空白。

如果邏輯線分布在多條自然線上,迴避線條尾序列、線條端條序列及後行開頭的空白,對鍵值或元素值不影響。 接下來關於鍵與元素解析(載入時)的討論將假設所有組成鍵與元素的字元都出現在一行自然行中,且每行連續字元都已被移除。 請注意,僅檢查行終止符序列前的字元 ,並不 足以判斷該行終止符是否為轉義;必須有奇數連續的反斜線,才能逃脫線終結者。 由於輸入是從左到右處理,在轉義處理後,連續 2n 個反斜線的非零偶數會編碼 n 個反斜線。

該鍵包含該行中所有字元,從第一個非空白字元開始,直到但不包含第一個未轉義 '='、 、 ':'或空白空白字元(除行終止符外)。 所有這些鍵終止字元都可以透過前置反斜線字元跳脫它們來包含在鍵中;例如,

\:\=

會是兩個字元的鍵。":=" 行終結字元可透過\r\n與跳脫序列來包含。 鍵後的空白部分會被跳過;如果鍵後第一個非空白字元是 '='':',則忽略該字元,之後的空白字元也會被跳過。 該行中剩餘的所有字元都成為相關元素字串的一部分;若沒有剩餘字元,該元素即為空字串 ""。 一旦識別出構成鍵與元素的原始字元序列,便依上述方式執行逃逸處理。

舉例來說,以下三行分別指定鍵 "Truth" 值及相關元素值 "Beauty"

Truth = Beauty
             Truth:Beauty
            Truth                    :Beauty

再舉一個例子,以下三行指定一個性質:

fruits                           apple, banana, pear, \
                                             cantaloupe, watermelon, \
                                             kiwi, mango

鍵為 , "fruits" 相關元素為:

"apple, banana, pear, cantaloupe, watermelon, kiwi, mango"

請注意,每個 \ 字元前都會有一個空格,因此最終結果中每個逗號後都會有一個空格; \續行上的 、 行終結符和前白空格僅被丟棄, 且不會 被一個或多個其他字元取代。

第三個例子是:

cheeses

指定鍵為 "cheeses" ,相關元素為空字串 ""

「unicodeescapes」鍵與元素中的字元可以用類似字元與字串文字的跳脫序列表示(參見引用 The Java&貿易;語言規範/引用)。

與用於字元和字串的字元跳脫序列及 Unicode 跳脫的差異有:

<ul><li> 八分的逃脫不被承認。

<li> 字元序列\b代表退格字元。

<li> 此方法不會將反斜線字 \元在無效逃脫字元前視為錯誤;反斜線會被靜默地刪除。 例如,在 Java 字串中,該序列"\z"會造成編譯時錯誤。 相較之下,這種方法會悄無聲息地移除反斜線。 因此,此方法將兩個字元序列 "\b" 視為等價於單一字元 'b'

<li> 轉義對單引號和雙引號並非必要;然而,根據上述規則,單引號和雙引號字元前加反斜線時,仍會分別產生單引號和雙引號字元。

<li> Unicode 轉義序列中僅允許一個「u」字元。

</ul>

該方法返回後,指定的串流仍保持開啟狀態。

新增於1.6版本。

Java 文件 java.util.Properties.load(java.io.Reader)

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於

Load(Stream)

從輸入位元組串流讀取屬性清單(鍵與元素對)。

[Android.Runtime.Register("load", "(Ljava/io/InputStream;)V", "GetLoad_Ljava_io_InputStream_Handler")]
public virtual void Load(System.IO.Stream? inStream);
[<Android.Runtime.Register("load", "(Ljava/io/InputStream;)V", "GetLoad_Ljava_io_InputStream_Handler")>]
abstract member Load : System.IO.Stream -> unit
override this.Load : System.IO.Stream -> unit

參數

inStream
Stream

輸入流。

屬性

例外狀況

備註

從輸入位元組串流讀取屬性清單(鍵與元素對)。 輸入串流採用簡單的行導向格式,如 所 #load(java.io.Reader) load(Reader) 規定,並假設使用 ISO 8859-1 字元編碼;也就是說,每個位元組是一個 Latin1 字元。 非 Latin1 字元及某些特殊字元,則以 Unicode 跳脫方式在鍵與元素中表示,該方法見 citeThe Java&;貿易;語言規範/引用

該方法返回後,指定的串流仍保持開啟狀態。

在 1.2 版本中加入。

Java 文件 java.util.Properties.load(java.io.InputStream)

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

適用於