我很難搞清楚如何在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是空的......這似乎是我的問題的根源。
究竟是什麼問題或問題? – rds
這個scores.xml文件或者是a)沒有被創建,或者b)我找不到它並且得到它的句柄。 – jcampos8782