2011-07-26 4 views
0

Android 장치의/res/xml 디렉토리에있는 기존 XML 파일에 쓰려고합니다. 두 가지 질문 :Android의 기존 리소스 XML 파일에 쓰기

1)이 파일들을 덮어 쓸 수 있습니까? 2) 그렇다면 어떻게 그 파일에 대한 핸들을 얻을 수 있습니까?

:

.... 
     PriorityQueue<Score> scores = new PriorityQueue<Score>(); 
    XmlPullParserFactory xmlFac = XmlPullParserFactory.newInstance(); 
    XmlPullParser qXML = xmlFac.newPullParser(); 
    File scoresFile = new File(c.getExternalFilesDir(null), "scores.xml"); 
    InputStream is = new FileInputStream(scoresFile); 
    qXML.setInput(is,null); 
.... 

을 사용하여 파일에 쓰기를 시도 : 사용하여 파일에서 읽을 시도

FileOutputStream fos; 

    try { 
     fos = openFileOutput("/res/xml/scores.xml", Context.MODE_PRIVATE); 
     fos.write(writer.toString().getBytes()); 
     fos.close(); 
    } catch (FileNotFoundException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

UPDATE

:

나는 아무 소용이 시도하고

.... 
    File scoresFile = new File(getExternalFilesDir(null), "scores.xml"); 
    OutputStream os = new FileOutputStream(scoresFile); 

    os.write(writer.toString().getBytes()); 
    os.flush(); 
    os.close(); 
.... 
+2

정직하게 말하면이 방법을 시도하는 경우 다른 접근 방식을 생각해야합니다. –

답변

1

당신은 장치에서 external storage을 사용하십시오. 당신은 자원에 글을 쓸 수 없으며 그렇게해서는 안됩니다. 대신 리소스를 외부 저장소에 복사 한 다음 수정하십시오.

EDIT : 응용 프로그램의 internal data folder을 사용하여 파일을 저장할 수도 있지만 수정하려면 리소스를 복사 해 두는 것이 좋습니다. 이렇게하면 파일이 응용 프로그램 내부에 남아있게됩니다.

+0

기기의 다른 앱에서 파일을보고, 읽고 수정할 수 있다는 생각이 들지 않는 경우에만 외부 저장소를 사용하십시오. – adamp

+0

그게 내가 의심하는 것입니다. 고맙습니다. – jcampos8782

+0

해당 영역의 xml 파일에 대해 XmlResourceParser를 사용할 수 있습니까? 그 클래스 이름의 중간에있는 "자원"부분은 나를 생각지 않게 만든다. – jcampos8782