我试图在 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/