android - 创建一个xml文件?

标签 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(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 中。

关于android - 创建一个xml文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48053939/

相关文章:

linux - 在 Linux 上重命名多个文件同时保持相同的扩展名

Android 语音转文本::实时更新文本

sql-server - 使用 xquery 压缩 xml 节点?

xml - 使用 JAXB 需要 JSON 字段

c - 如何使用 C 仅从包含数字和字母的数组中读取数字?

c# - 照片的唯一命名 - GUID 与序列号

java - 有没有办法在一行中将数​​字添加到 ArrayList 中的现有数字?

android - ScrollView 中的 RecyclerView 不起作用

java - 这个错误有什么解决办法吗?

sql-server - tsql for xml,复杂的 xml