Android 创建xml文件?

Android 创建xml文件?,android,xml,file,Android,Xml,File,我试图在android中创建一个xml文件,但得到的是空文件。我读过很多关于这个问题的文章,但我没有找到解决办法。我的mimeType是text/xml,这是我选择目录的代码 private void createFile(String mimeType, String fileName) { Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT); intent.addCategory

我试图在android中创建一个xml文件,但得到的是空文件。我读过很多关于这个问题的文章,但我没有找到解决办法。我的mimeType是text/xml,这是我选择目录的代码

 private void createFile(String mimeType, String fileName) {
            Intent intent = new Intent(Intent.ACTION_CREATE_DOCUMENT);
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            intent.setType(mimeType);
            intent.putExtra(Intent.EXTRA_TITLE, fileName);
            startActivityForResult(intent, WRITE_REQUEST_CODE);
}
这是我将数据传递到文件的代码

public void onActivityResult(int requestCode, int resultCode,
                                 Intent resultData) {
        if (requestCode == WRITE_REQUEST_CODE && resultCode == Activity.RESULT_OK) {
            Uri uri = resultData.getData();
            String fileData = "the data I want to write to file";
            FileOutputStream fileOutputStream=null;
            try{
             fileOutputStream=(FileOutputStream) getContentResolver().openOutputStream(uri); }catch (Exception e){
                Log.e(LOG_TAG,e.getMessage());
            }
            XmlSerializer serializer= Xml.newSerializer();
            StringWriter writer=new StringWriter();
            try {
                serializer.setOutput(writer);
                serializer.startDocument("UTF-8",true);
                serializer.startTag("","myTag");
                serializer.text(fileData);
                serializer.endTag("","myTag");
                serializer.endDocument();
                String val= writer.toString();
                fileOutputStream.write(val.getBytes());
            } catch (Exception e) {
                Toast.makeText(this, "Error - Exception writing to " + uri.toString(), Toast.LENGTH_SHORT).show();
         }
文件已创建,但其中没有任何内容。有人能帮我吗?

fileOutputStream=(fileOutputStream)getContentResolver().openOutputStream(uri)应与
ClassCastException
一起崩溃
openOutputStream()
返回一个
OutputStream
,但它不一定是
FileOutputStream


此异常的堆栈跟踪应该显示在LogCat中。

我真的不明白为什么,但这似乎是移动设备的问题。我的代码在其他移动设备上运行良好。谢谢

我还尝试了这个OutputStream文件OutputStream=getContentResolver()@IoannaDln:在写入字节后,在
OutputStream
上调用
flush()
close()
。始终将异常记录到LogCat,这样您就可以看到堆栈跟踪——不要单独依赖于
Toast
。在调试器中逐步执行代码,以确保正在执行您期望的所有语句。flush()和close()没有更改任何内容。另一个空xml文件被删除created@IoannaDln:您如何确定文件为空?您可能还想切换到使用
PrintWriter
,而不是尝试
getBytes()
。此外,在调试器中逐步执行代码,以确保所有语句都按预期执行,并且
val
包含所需的XML。将创建一个文件,其中没有写入任何内容。空文件。我正在试用PrintWriter,看看它是否有效