2

次のように \n で区切ると、文字列内のプロパティを java.util.Properties にロードできることがわかりました。

セパレーターを動的に提供する方法はありますか?たとえば、コンマ (,) をセパレーターとして使用できますか?

String  propertiesString = "#Namal=153\nJanith=253\nSameera=135";
Properties properties = new Properties();
properties.load(new StringReader(propertiesString));
4

3 に答える 3

1

コンマをトークン化し、改行を使用してそれらを結合してから、java.util.Properties にロードできます。

以下のサンプル コードでは、commons-langを使用し、UNIX の改行 (\n) を使用していることを前提としています。

String propStr = "Monday=1,Tuesday=2,Wednesday=3";
String[] propsArray = StringUtils.split(propStr, ',');
Properties properties = new Properties();
properties.load(new StringReader(StringUtils.join(propsArray, "\n")));
于 2013-03-18T05:48:21.793 に答える
1

いいえ、あなたはこれを行うことはできません!そして、それは価値がありません.ただ String でそれをしてください. '\n' はデフォルトの行区切り記号で、行読み操作のロジックを定義する LineReader 内部クラスがありますが、それを操作する機会はないと思います。

于 2013-03-18T05:55:22.850 に答える
0

Properties クラスは、構成をロードするように設計されたユーティリティです。

\n は改行文字なので、プロパティ ファイルを読みやすくするために選択されたとしか思えません。

要件がカスタム形式で保存されたデータを取得することである場合は、いつでもそれらを読み取り、次を使用して構成を手動で解析できますScanner

または、適切なスキーマを持つ XML 構成ファイルを使用します。

ところで、新しい行をセパレータとして使用することの何が問題になっていますか? プロパティ ファイルを使用して別の種類のファイルをロードしたいと考えているだけです。プロパティ クラスの形式は、使いやすさと読みやすさの点で完全に理にかなっているからです。

于 2013-03-18T05:47:12.257 に答える