3

既存のプロパティ ファイルに書き込み/追加する Java クラスがあります。追加後、すべての単一のバックスラッシュを二重のバックスラッシュに置き換え、すべてのセミコロンの前に単一のバックスラッシュを配置します。

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  // TODO Auto-generated method stub
  response.setContentType("text/html");
  PrintWriter out= response.getWriter();
  String systemPath=request.getParameter("SYSTEMPATH");
  String deployPath = getServletConfig().getServletContext().getRealPath("/WEB-INF/DB.properties");
  InputStream stream = getServletContext().getResourceAsStream("/WEB-INF/DB.properties");
  Properties prop = new Properties();
  prop.load(stream);
  prop.setProperty("Workspace", systemPath);
  File file = new File(deployPath);
  FileOutputStream fileOut = new FileOutputStream(file);
  prop.store(fileOut, "sample properties");
  fileOut.close();
}

追加する前に:

Url=jdbc:oracle:thin:@//192.168.1.22:1521/

Workspace=D:\RACHEL\SW\Antivirus

追加後:

Url=jdbc:oracle:thin:@//192.168.1.22:1521/

Workspace=D:\\RACHEL\\SW\\Antivirus

これらの余分なバックスラッシュを削除するには?

4

4 に答える 4

3

プロパティ ファイルには、最初にバックスラッシュを追加する必要があります。特に、それらがないと、間違ったデータになってしまう可能性がありますd:\foo\new

バックスラッシュは、基本的にプロパティファイルで重要なエスケープ文字です。コロンは不要ですが (キーに含まれていないため)、害はありません。テキストのバックスラッシュを 2 倍にすることは、非常に有益です。

これはドキュメントに記載されていPropertiesます - 特に、store()呼び出しているメソッドを見てください。

于 2013-08-01T09:58:55.423 に答える
2

プロパティ ファイルには独自の形式があります。コロンバックスラッシュは、プロパティ ファイル内の特殊文字です。したがって、それらをエスケープする必要があります。また、プロパティを見てください。load()ドキュメンテーション。

Propertiesクラスを使用してファイルの書き込み読み取りを行っている場合、問題はありません。ただし、クラスを使用してプロパティ ファイルを記述し、Property他の方法を使用して読み取る場合は、エスケープを手動で処理する必要があります。

于 2013-08-01T10:00:45.770 に答える
0

キーとその値を取得して確認できますが、変化しませんが、プロパティファイルでは余分なスラッシュが付いているようです

于 2013-08-01T10:09:29.373 に答える