我已经编写了下面的代码,但是我一直收到有关Path Separator的错误。
btn_guardar.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
final String CP7_String = et_id.getText().toString();
final String ncontagem_String = et_ncontagem.getText().toString();
Thread thread = new Thread () {
public void run() {
String PATH=null ;
FileOutputStream fileos = null;
try{
if(fileos==null)
{
// If the file don't exists
File file = new File(Environment.getExternalStorageDirectory().toString()+"/xml_nova_contagem.xml" );
fileos = new FileOutputStream(file);
}
// If the file exists
/////////-------- THIS METHOD WON'T WORK --------///////
/* if (fileos!=null){
System.out.println("aqui vai dar bronca: " + Environment.getExternalStorageDirectory().toString());
// PATH = Environment.getExternalStorageDirectory().toString() + "/xml_nova_contagem.xml";
Context context= getApplicationContext();
fileos = context.openFileOutput("xml_nova_contagem.xml", Context.MODE_APPEND);
System.out.println("okkkkkkkkk ");
}
*/
XmlSerializer serializer = Xml.newSerializer();
try{
serializer.setOutput(fileos, "iso-8859-1");
serializer.startDocument(null, Boolean.valueOf(true));
serializer.startTag(null, "CodigoPostal");
serializer.startTag(null, "CP7");
serializer.text(CP7_String);
serializer.endTag(null,"CP7");
serializer.startTag(null,"NovaContagem");
serializer.text(ncontagem_String);
serializer.endTag(null, "NovaContagem");
serializer.endTag(null, "CodigoPostal");
serializer.endDocument();
serializer.flush();
fileos.close();
System.out.println("endddddddddda");
}catch(Exception ee)
{
System.out.println("Exception"+ee);
}
}
catch (Exception e) {
System.out.println("Erro a escrever"+e);
System.out.println("path"+PATH);
}
}
};thread.start();
}
});
}
}
我需要在SDCard中打开一个文件,但我无法打开它。目的是将新记录添加到现有XML文件,但由于我无法读取它,我无法添加新记录。 我有另一种创建XML文件并添加记录的方法,它可以工作,但是这个方法不起作用。
答案 0 :(得分:3)
context.openFileOutput:直接来自DOC:用于打开与此Context的应用程序包关联的私有文件以进行写入。如果文件尚不存在,则创建该文件。
这意味着您正在尝试打开不在SD卡上的文件。
要打开外接存储器或SD卡上的文件:
File root = new File(Environment.getExternalStorageDirectory(), "Your folder");
File gpxfile = new File(root, "xml_nova_contagem.xml");
请记住,如果您的应用正在使用SD卡,则需要管理未安装SD卡的方案等。请查看: Writing Text File to SD Card fails
如果您的xml文档作为数据库工作,或者您要在此处保存关键信息,我建议您在内部存储中创建此xml文件:
http://developer.android.com/guide/topics/data/data-storage.html