如何在Android中将自定义对象写入文件

Posted

技术标签:

【中文标题】如何在Android中将自定义对象写入文件【英文标题】:How to write custom object to file in Android 【发布时间】:2013-08-20 12:03:47 【问题描述】:
private Map<String, List<DrawPath>> savedPath= new LinkedHashMap<String, List<DrawPath>>();

我想将此“savedPath”写入文件,但抛出 IOException:

public static class DrawPath implements Serializable
        /**
         * 
         */
        public static final long serialVersionUID = 1L;
        public Path path;
                public Paint paint;
      

 ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(sdFile));

out.writeObject(savedPath); // throws IOExcption

如果更改为Map&lt;String, String&gt;,它会成功运行,它与我的自定义 DrawPath 类有关吗?如何将此对象写入文件成功?谢谢

【问题讨论】:

请将您的 Logcat 错误日志连同您的问题一起发布。 它被 try out.writeObject(savedPath); 捕获 catch (IOException e) // TODO 自动生成的 catch 块 e.printStackTrace(); 嗯,控制台选项卡附近有一个logcat选项卡。当应用程序崩溃时,您捕获的错误会打印在那里。请在应用程序崩溃时找到您的 logcat 中的所有错误代码和字符串,并将其粘贴到您的问题中。 你知道我应该保存画图吗?或者除了 DrawPath 类之外的其他对象如何 Serializable ? 【参考方案1】:

确保您写入文件的所有对象都是可序列化的,保存 Paint 可能是问题

【讨论】:

我应该如何保存画图?或者除了 DrawPath 类之外的其他对象如何序列化?非常感谢!

以上是关于如何在Android中将自定义对象写入文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在android中将自定义过滤器应用于相机流?

如何在 android 的 setContentView 中将自定义布局设置为主视图

如何在 Swift 中归档和取消归档自定义对象?或者如何在 Swift 中将自定义对象保存到 NSUserDefaults?

如何在 .NET 中将自定义类型保存为二进制数据?

如何在 agora web 中将自定义对象传递给远程流

如何在我的自定义 JSP 标记中将整数值作为参数传递?