0

xml ファイルを Android の内部ストレージに保存しようとしています。ただし、ファイルは保持されません。エミュレーターを再起動するたびに、ファイルは空になります。アプリ内で手動で書き込みを選択した場合にのみ、ファイルに書き込みが行われます。次に、アプリなどを閉じると、ファイルの内容が保持されます。ただし、エミュレーターをシャットダウンすると、ファイルはそこにありますが、空です。

したがって、正しく保存されているかどうかはわかりません。

私のコードを見てください。コードに何か問題があるか、Android エミュレータの設定が間違っている可能性があります。

public static void store(Context c, String filename, int width, int height, int rooms, int expected_partiters, BSPNode root, Cells cells, int[][] dists, int startX, int startY)
{
     try {

            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.newDocument();


            // root elements
            storeMaze(width, height, rooms, expected_partiters, root, cells, dists, startX, startY, doc);

            String serializedDoc = MazeFileWriter.getStringFromDoc(doc);
            try {
                FileOutputStream fos = c.openFileOutput("data_test.xml", Context.MODE_PRIVATE);
                fos.write(serializedDoc.getBytes());
                fos.close();
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

     } catch (ParserConfigurationException pce) {
         pce.printStackTrace();
     }
}

static String getStringFromDoc(org.w3c.dom.Document doc) {
    try
    {
       DOMSource domSource = new DOMSource(doc);
       StringWriter writer = new StringWriter();
       StreamResult result = new StreamResult(writer);
       TransformerFactory tf = TransformerFactory.newInstance();
       Transformer transformer = tf.newTransformer();
       transformer.transform(domSource, result);
       writer.flush();
       return writer.toString();
    }
    catch(TransformerException ex)
    {
       ex.printStackTrace();
       return null;
    }
}

Android初心者なのでアドバイスよろしくお願いします!

4

1 に答える 1