2013-10-03 1 views
1

/res/raw/의 XML 파일을 로컬 저장소에 복사하는 방법이 있습니다.Android Raw XML 파일에서 설명을 삽입합니다.

<!-- From: file:/C:/Users/William/Documents/Projects/Home/KanjiFixProject/KanjiFix/src/main/res/raw/fallback_fonts.xml --> 

은 내가 프로젝트를 컴파일 할 때 파일이 존재하는 곳의 위치를 ​​제공하기 위해 나타납니다 그러나, 복사를 끝 파일이 추가 코멘트가 원래 XML 파일에없는 생성 있습니다. See here for the full file text.

이 텍스트의 원인은 무엇이며 어떻게 예방할 수 있습니까?는 다음 나는 디스크에 /res/raw/에서 파일을 복사하는 데 사용하는 방법입니다 : 당신이 프로그래밍 방식으로 그 값을 삽입하는 스트림을 방지 할 수있는 방법을 찾을 수없는 경우

private void copyRawResourceToFile(int resource, File outputFile) throws IOException { 
    InputStream stream = getResources().openRawResource(resource); 
    FileOutputStream output = null; 
    byte[] buffer = new byte[1024]; 
    int read = 0; 
    try { 
     output = new FileOutputStream(outputFile); 

     while ((read = stream.read(buffer)) > 0) { 
      output.write(buffer, 0, read); 
     } 

     output.flush(); 
    } 
    finally { 
     stream.close(); 

     if (output != null) { 
      output.close(); 
     } 
    } 
} 
+0

방금이 코드를 테스트했는데 추가 파일을 만들지 않고 원본 파일과 마찬가지로 성공적으로 복사되었습니다. 어쩌면 파일 복사를 가로 채서 주석을 추가하는 앱이 설치되어 있습니까? 그런 응용 프로그램이 있는지 확실하지 않지만 ... –

+0

더 완벽해질 수 있도록 Android Studio 0.2.10을 사용하고 있으며 Stock ROM이 장착 된 Android 4.3 Galaxy Nexus에서 테스트 중입니다. 나는 그것이 안드로이드 스튜디오와 버크가 될 것 같아요? 내 전체 소스는 오픈 소스이며 그 라인은 분명히 존재하지 않습니다. https://github.com/ascendedguard/android-kanji-fix/blob/master/KanjiFix/src/main/res/raw/fallback_fonts.xml –

+0

이것은 Gradle 빌드 시스템을 사용하여 명령 줄에서 앱을 컴파일 할 때 (디버그 모드 또는 릴리스 모드와 상관없이) 나에게도 일어납니다. –

답변

0

이후 Android Studio (이 포스트의 v0.8.14)의 최신 버전에서이 문제가 해결되었습니다.

0

, 왜 사용하지 않습니다 OutputStream에 보내기 전에 BufferReader와 readLine을 한 라인 씩 실행하면 라인이 "< - From : file :"으로 시작하지 않는다는 것을 확인할 수 있습니다.

이 트릭을 할 것입니다하지만, 프로그램을 읽는 것을 extraline을 건너 뛸 수있는 방법이있을 수 있기 때문에 가장 좋은 방법은 실제로 경우 몰라요 ...이 도움이

희망 ...

감사합니다!

관련 문제