2012-04-05 3 views
4
같은 파일이 JFileChooser의 대화

수 없습니다

패스와 함께 선택되어있는 경우 그것은 잘 작동

는 C 같은입니다 : \ テ ス ト \의 Sample.txt

다음 코드는

+1

어떤 파일 시스템을 사용하고 있습니까? JFileChooser와 함께 작동하는 경우 프로그램을 작성하고 JFileChooser의 인스턴스에서 읽은 경로를 출력하고 동일한 지 확인하십시오. – Jagger

+3

문제가 해결되었지만 파일 이름이 \ teststring = "C : \\ 테스 트 \\ sample.txt"인 경우 \를 이스케이프 처리해야하는지 확실하지 않습니다. – assylias

답변

8

문제는 가능성이 높습니다 그것은 FileNotFoundException이 실패

String teststring = "C:\\テスト\\sample.txt"; 
    File file = new File(teststring); 

    BufferedReader reader = new BufferedReader(new FileReader(file)); 
    System.out.println(reader.readLine()); 
    ... 

작동하지 않습니다 Java가 컴파일 될 때 테스트 문자에 대한 파일 인코딩과 일치하지 않는 인코딩으로 컴파일되고 있다는 것을 알았습니다. 당신은

System.out.println(teststring); 

를 삽입하여 아마 テ ス ト 기본 단위

, 인코딩이 플랫폼의 인코딩을 인쇄 할 것이다 것을 확인할 수 있습니다. ,

그리고 @assylias 지적과 같이 파일이 UTF-8로 저장되어있는 경우, 당신은

javac -encoding UTF-8 YourClass.java 

컴파일 (또는 Ant

편집에 <javac> 작업에 대한 encoding="UTF-8" 속성을 사용할 수 있습니다 백 슬래시 이스케이프 할 필요가!

1

덕분에 많은 도움을 위해. 다음과 같은 변화가 솔루션에서 떨어져 문제를 해결했다

,
... 
File file = new File(new String(teststring.getBytes(),"utf8"); 
...