2011-07-27 7 views
0

Android 기기에서 파일을 읽고 쓰는 방법을 알아 내려고합니다. 이 파일은 XML 형식으로되어 있으며 XML을 객체 및 객체로 XML 형식으로 작성할 수있는 파서 및 데이터 구조가 이미 구축되어 있지만 마지막 장애물은 비 - 자원 파일에서 XML을 읽는 것입니다 (데이터 구조가 작동한다는 것을 알고 있기 때문에 리소스 파일에서 읽을 때 작동하며 비 리소스 파일에 기록합니다. 디버깅 도구 (스택 추적을 인쇄하는 방법을 모르겠다)를 사용하는 것은 끔찍한 일이지만 사실은이 파일을 읽거나 쓸 수 없다는 것을 알고 있습니다. 나는 Java로 파일을 작성하는 데 경험이 없기 때문에이 작업을 거친다.Android에서 파일 쓰기 및 읽기

쓰기 코드 :

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

    if (!scoresFile.exists()) 
    { 
     scoresFile.createNewFile(); 
    } 

    OutputStream os = new FileOutputStream(scoresFile); 

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

읽기 코드 :

XmlPullParserFactory xmlFac = XmlPullParserFactory.newInstance(); 
    XmlPullParser qXML = xmlFac.newPullParser(); 
    InputStream is = null; 
    File scoresFile = new File(c.getExternalFilesDir(null), "scores.xml"); 

    if (!scoresFile.exists()) 
    { 
     try { 
      scoresFile.createNewFile(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 

    try { 
     is = new FileInputStream(scoresFile); 
    } catch (FileNotFoundException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

    if (is != null) 
     qXML.setInput(is,null); 
    else 
     qXML = c.getResources().getXml(R.xml.scores); 

UPDATE : 읽기 섹션에 절은 항상 false로 평가되면 마지막. 그래서, InputStream null입니다 ... 내 문제의 루트 것으로 나타납니다.

+1

귀하의 질문이나 문제는 정확히 무엇입니까? – rds

+0

scores.xml 파일이 a) 생성되지 않았거나 b) 찾을 수없고 핸들을 얻지 못했습니다. – jcampos8782

답변

2

나는이 두 개의 링크를 살펴 것 : Using Internal StorageUsing External Storage

같은 페이지에 모두 링크, 단지 다른 부분을. 정말로이 파일을 장치 메모리 나 외부 매체 (예 : SD 카드)에 저장할지 여부에 달려 있습니다.

  1. 내부 - 샌드 박스이므로 앱에서만 액세스 할 수 있습니다.
  2. 외부 - 누구나 액세스 할 수 있습니다.
+0

좋아요. 누군가가 저에게 준 마지막 링크는 달라서 끔찍했습니다. 이것을 읽으면 내 문제가 해결되었습니다. 나를 올바른 방향으로 가리켜 주셔서 감사합니다. – jcampos8782