3

私は、ユーザーが(主にローカルに保存された)ファイルのセットを表示できるようにするswingアプリに取り組んでいます。(他の設定の中でも)ファイルのリストをプロパティファイルにテキストとして保存することはできますが、ファイルの値をプルアウトしようとすると、

myProperties.getProperty("File")

テキストにある'\'の一部を破棄します。次のようにプロパティファイルに書き込むことを確認しました。

myPrintWriter.println("File = " + myFile.toString().replaceAll("\\\\", "/"))

またはこれ:

myPrintWriter.println("File = " + myFile.toString().replaceAll("\\\\", "\\\\\\\\"))

期待どおりに動作するようgetProperty()になりますが、APIで説明せずにデータをJava固有の形式に変換する必要がなかったため、StackOverflowに書き込むことにしました。


しかし、私の投稿でこの時点に到達したとき、恥ずかしさを感じ始めました。java.util.Properties(JDKで配布されている)のJavaソースコードを参照せずに、StackOverflowに投稿しようとしていました。JavadocのコメントProperties.load()は、これが設計上の決定であり、たとえば、プロパティ値に改行を含めることができることを示していることがわかりました。言語に依存しないことが必要な場合は、プロパティファイルをXMLで作成することを検討すると思います。


エピローグ:これはStack Overflowに関する私の最初の投稿であり、私自身の質問に答えましたが、誰か(またはおそらく人工の自然言語処理インテリジェンス)が見つけてくれることを期待して、とにかく投稿することにしましたそれは便利です(または照らします)。また、人々が返信で投稿する可能性のあるアイデアや提案についても興味があります。TL; DR?読んでくれてありがとう!

4

2 に答える 2

2

該当する場合は、二重の円記号を使用できます- c:\\test\\test.txt

Properties props = new Properties();
props.setProperty("test", "c:\\test\\test.txt");
System.out.println(props.getProperty("test"));

Windowsシステムでは、スラッシュを使用することもできます- c:/test/test.txt

Properties props = new Properties();
props.setProperty("test", "c:/test/test.txt");
System.out.println(props.getProperty("test")); 
于 2012-06-27T01:23:23.087 に答える
1

Properties.store()プロパティを書き出すために使用できます。store()は、読み取り可能な形式でプロパティを書き込むこととして文書化されているload()ため、実行する必要のあるマッサージをすべて処理します。

于 2012-06-27T01:35:00.507 に答える