5

メソッドPropertiesを使用して、ファイル内の既存のプロパティ値を上書きしようとしています。Properties#setProperty()

しかし、私は余分なバックスラッシュを取得します...

たとえば、Properties ファイル内に次のエントリがあります。

#url to server
url=http://192.22.222.222

http://192.22.222.222値を新しい値で上書きしようとすると、http://192.33.333.333次の結果が得られます。 http\://192.33.333.333

つまり、最初のバックラッシュは不要です。私

問題はどこですか?

4

3 に答える 3

4

問題ないよ。ファイルを再度ロードすると、プロパティ値に円記号は表示されません。エスケープコードは、厳密に必要かどうかに関係なく、すべてのコロン(およびおそらくすべての等号)をエスケープすることを選択しています。(それらがキーの一部でない場合、それらをエスケープする必要はありません、おそらくコードをエスケープする方が簡単になります。)

いずれかのメソッドを使用してコードを常にロードしている限り、Properties.load問題はまったく発生しません。

于 2012-09-24T07:32:09.460 に答える
2

ドキュメントから:

キーには、最初の非空白文字から始まり、行末記号以外の最初のエスケープされていない、、、または空白文字までの行のすべての文字が含まれ'='ます':'。これらのキー終了文字はすべて、前にバックスラッシュ文字を付けてエスケープすることにより、キーに含めることができます。例えば、

\:\=

2文字のキーになります":="

于 2012-09-24T07:32:37.967 に答える
1

Java プロパティは、プロパティ値を書き込むときにコロンなどの一部の文字をエスケープします。プロパティ#storeを参照してください。

Properties 形式ではキーと値の区切り記号としてコロンを使用できるため、これは機能と見なされます (Properties#load メソッドのソースを参照してください)。

于 2012-09-24T07:34:57.680 に答える