2017-02-08 3 views
0

이 코드는 절대 경로를 가져 와서 기본 설정 파일에서 문자열을 추가 한 다음 ".json"을 추가하여 필요한 파일과 일치시킵니다. 나는 문자열을 연결하는 "+"사용하여 시도,하지만 이건 내 콘솔 출력Java 연결이 작동하지 않음

StringBuilder pt= new StringBuilder(path); 
    pt.append(System.getProperty("file.separator")); 
    pt.append("lib"); 
    pt.append(System.getProperty("file.separator")); 
    pt.append("ling"); 
    pt.append(System.getProperty("file.separator")); 
    String lingua =PrefManager.getPref("lingua")+("="); 
    System.out.println(lingua); 
    pt.append(lingua); 
    System.out.println("com extensão"+pt.toString()); 
    String file = pt.toString(); 
    System.out.println(file); 
    System.out.println(file); 
    Object obj = parser.parse(new FileReader(file)); 

StringBuilder.append()와 같은 출력을 제공했다 :

=t-br 
=om extensão/home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br 
=home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br 
=home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br 
java.io.FileNotFoundException: /home/mateus/BrinoBuildScript/Filesx64/lib/ling/p= (No such file or directory) 

어떻게 변수가 세를 가질 수 있습니다 콘솔에 다른 출력이 있습니까? 이 문제를 해결하려면 어떻게해야합니까?

+0

이유는 세 가지 출력 :

final Path p = Paths.get(path, "lib", "ling", PrefManager.getPref("lingua")); System.out.println(p); 

여기에 경로 API에 자바 자습서를 참조하십시오? 어떤 결과를 기대합니까? – IQV

+0

"com extensão"텍스트를 제외하고 출력이 동일합니다 ... – john16384

+0

또한 .json을 추가하지 않거나 무엇을 기대 했습니까? – Xander

답변

0

마테우스. 콘솔 출력이 첫 번째 열에있는 줄의 마지막 문자를 인쇄하고 있습니다. 올바르게 렌더링, 콘솔 출력은 다음과 같아야합니다

pt-br= 
com extensão\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br= 
\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br= 
\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br= 

을이 출력에서, 당신은 문자열 file가 올바르게 설정되어 있는지 볼 수있다 (당신은 아마 뒤에이하지 않으려는 있지만 '=').

시스템 경로 구분 기호를주의해서 사용하고 있지만 연결은 약간 어색합니다. 자바의 이전 버전을 사용하는 경우, OU 파일 클래스를 사용하여 경로를 구성하려고 할 수 있습니다 : 당신이 자바의 최신 버전을 사용하는 경우

final String path = "\\home\\mateus\\BrinoBuildScript\\Filesx64"; 
final File libFolder = new File(path, "lib"); 
final File lingFolder = new File(libFolder, "ling"); 
final File languageFolder = new File(lingFolder, PrefManager.getPref("lingua")); 
System.out.println(languageFolder.getAbsolutePath()); 

을, 당신은 플랫폼을 처리 할 않는 경로 API를 (사용할 수 있습니다 - 특정 경로 구분) :

https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

+0

덕분에 경로 API를 살펴볼 것입니다. 나는 string.format ("% s. % s")과 .json의 연결을 관리했다. –

관련 문제