2016-08-08 7 views
3

私はWindows上で実行するJavaアプリケーションを開発しています。 .properties-fileには複数のバックスラッシュ( "\")があります。これは、ファイルは次のようになります。.properties-fileの特殊文字( "")

dir=\\127.0.0.1\d$\dir\dir2\dir3 

私はSpring注釈Valueを使用してプロパティdirをお読みください。

@Value("${dir}") 
protected String dir; 

これは、プロパティdirをコードで使用される文字列127.0.0.1d$dirdir2dir3になります。私はユニコードを試してみました

は次のようにエスケープ:

dir=\u005C\u005C127.0.0.1\u005Cd$\u005Cdir\u005Cdir2\u005Cdir3 

私はまた、このようなエスケープとしてバックスラッシュを試してみました:

dir=\\\\127.0.0.1\\d$\\dir\\dir2\\dir3 

を文字列\\127.0.0.1d$dirdir2dir3プロパティで結果上記の試行の両方dirコード内で使用されます。

コードでプロパティーを使用すると、dir\\127.0.0.1\d$\dir\dir2\dir3に設定します。この結果を得るために、.properties-fileはどうなるでしょうか?

+0

一重引用符を試しましたか? –

+0

@NicolasHenneauxはい。 '127.0.0.1d $ dirdir2dir3'になります。 – user1766169

+0

スラッシュを使用します。 – Leon

答えて

-1

コンパイラが次の文字が有効であることを理解し、その結果をStringに格納することをバックスラッシュエスケープと呼びます。 \\127.0.0.1\d$\dir\dir2\dir3と入力すると、すべてのバックスラッシュが2番目のもの(明らかに)を除いてエスケープされます。ここでStringオブジェクトを使用しないでください。 Propertiesを試して、結果を投稿してください。私は同じ経験とプロパティの使用がうまくいきました。

+0

これはプロパティファイルです。コンパイラはそれの近くに決して来ません。 – EJP

+0

JVMもあります。バックスラッシュを検出すると、バックスラッシュをエスケープし、次の文字を 'String'に追加します –

0

スラッシュを使用する理由はWindows上で動作する理由以外にもあります