如何将mEditText.getText();
等可修改对象保存到文件中?
我尝试使用以下代码并且它可以工作,但最后我得到IOException
,IOException.getLocalizedMessage();
和IOException.getMessage();
都显示以下字符串。
E/Error:(5223): android.text.SpannableStringBuilder
以下是我尝试过的代码:
try {
SpannableStringBuilder ssb = new SpannableStringBuilder(mMainEditText.getText());
//Create a File object with user entered file name...
File outputFile = new File(getDocStorageFolder(),
mUserEnterFileName
+ ".msd");
Log.e("Path:", "" + outputFile.getAbsolutePath());
Toast.makeText(MainActivity.this, "" + outputFile.getAbsolutePath(), Toast.LENGTH_LONG).show();
FileOutputStream fos = new FileOutputStream(outputFile); //create your FileOutputStream here
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(ssb);
oos.close();
oos.flush();
fos.close();
Toast.makeText(MainActivity.this, "Success!", Toast.LENGTH_LONG).show();
} catch (IOException e) {
e.printStackTrace();
Log.e("Error: ", e.getMessage());
Log.e("Error: ", e.getLocalizedMessage());
Toast.makeText(MainActivity.this, "Error occured while "
+ "attempting to create the Document file!", Toast.LENGTH_LONG).show();
}
答案 0 :(得分:1)
您无法直接将Editable
或SpannableStringBuilder
保存到文件中。
欢迎您将Spanned
的内容转换为可写入文件的内容。我不知道任何涵盖所有可能跨度的东西,很大程度上是因为任何人都可以发明自己的跨度。
Html.toHtml()
将采用一部分跨度并从中生成HTML。
此外,my CWAC-RichEdit library包含a SpannedXhtmlGenerator
,它将不同的跨度子集转换为XHTML,旨在使用同一个库中的SpannableStringGenerator
进行回读。