2017-03-18 6 views
-1

경로가 있습니다 (예 : C : \ Users \ chloe \ Documents). 속성 파일에 저장하려고하면 다음과 같은 문자열 때문에 이중 슬래시로 저장됩니다. "C : \ Users \ chloe \ Documents "어떤 이유로 인해 C : 뒤에 \\을 넣지 않습니다. 나는 인터넷을 검색하고 그들은 완전히 대체에 대해 얘기했다 :이중 백 슬래시를 단일 백 슬래시로 바꾸기

path.replaceAll("/+", "/"); 

을하지만 이것은 정상 슬래시를 대체하고 난 다음은

(자바) ... 백 슬래시을 수행하는 방법을 알고 싶습니다 내가 속성 파일을 작성하는 방법 (전용 필요한 것) : 당신이 String 문자에 하드 코딩 할 때

Properties prop = new Properties(); 
OutputStream output = null; 


try { 
       output = new FileOutputStream("config.properties"); 
       prop.setProperty("dir", path); 
       prop.store(output, null); 
      }catch(IOException e1){ 
       e1.printStackTrace(); 
      } finally { 
       if (output != null) { 
        try { 
         output.close(); 
        } catch (IOException e1) { 
         e1.printStackTrace(); 
        } 
       } 

      } 

path = System.getProperty("user.home") + File.separator + "AppData" + File.separator + "Roaming"; 
+1

백 슬래시 *라고합니다. 백 슬래시가 문자열에서 특별한 의미를 지니기 때문에 대개 두 개의 문자로 대체되는 이유가 있습니다. – UnholySheep

+0

문제가 약간 분명하지 않습니다. 문제의 원인 대신 효과를 고치려고하는 것 같습니다. 그것을 명확히하고 (''\''를 적절하게 보여주기 위해''코드 포맷팅 ''을 사용하십시오.) – Pshemo

+0

쓰기 후에'path'를 설정하고 있습니다. –

답변

4

당신 만 \\이 필요합니다. \문자이므로 문자로 실행시 런타임에는 \이됩니다. 경로를 /과 같이 구분 기호로 쓸 수도 있습니다. 명확하게하기 위해

String path = "C:\\Users\\chloe\\Documents"; 

은 (당신이 print에 있다면) C:\Users\chloe\Documents에 해당하는 값을 갖는 String을 만듭니다. 당신은 또한 다음 실행시 사용자의 Documents 폴더를 선택 할

String path = System.getProperty("user.home") + File.separator + "Documents"; 

을 작성할 수 있습니다. 마지막으로, 윌 출력

\\ 
\ 

System.out.println("\\\\"); 
System.out.println("\\\\".replaceAll("(\\\\\\\\)+", "\\\\")); 

정규 표현식\ 탈출하는 카운터 직관적이다.

+0

정상적인 파일을 사용하는 경우 파일을이 위치에 저장할 수 있습니까? – RekTek249

+0

@ RekTek249'C :/Users/chloe/Documents'를 뜻한다면, 그렇습니다. –

+0

오 File.seperator 하나를 시도합니다 – RekTek249

-1
path.replaceAll('\\',File.separator); 

가 작동 할 수 있습니다. 더 많은 정보가 도움이 될 것입니다. 예를 들어 경로를 얻는 방법과 클래스 (경로 또는 문자열에 대한 파일 경로를 읽는 중이거나 조각으로 경로 조각을 생성하고 있습니까?) 등입니다.

+0

가 작동하지 않습니다. 오류가 발생했습니다 – RekTek249

+0

오케이, 무슨 오류입니까 – Seymore

+0

발견 된 문자, 필수 문자열 – RekTek249

관련 문제