Java 如何在android中备份电池上的数据?
我正在开发一个将数据写入文件的应用程序。假设在写入数据时,我们将电池拔出。文件会发生什么变化?它是半写(损坏)、空的还是和我们之前写的一样?我猜它会被破坏。当文件存储对象的arraylist时,如何在重新启动手机时检查它是否已损坏?java是否会引发损坏的文件异常,或者说读取arraylist为null,或者它是未知对象Java 如何在android中备份电池上的数据?,java,android,file,file-io,backup,Java,Android,File,File Io,Backup,我正在开发一个将数据写入文件的应用程序。假设在写入数据时,我们将电池拔出。文件会发生什么变化?它是半写(损坏)、空的还是和我们之前写的一样?我猜它会被破坏。当文件存储对象的arraylist时,如何在重新启动手机时检查它是否已损坏?java是否会引发损坏的文件异常,或者说读取arraylist为null,或者它是未知对象 另外,是否可以创建另一个文件来保存数据文件的MD5校验和?每当我首先写入文件数据时,我会生成它的校验和,然后当我从数据文件读取时,我会生成一个校验和,并将它与前一个进行比较。这
另外,是否可以创建另一个文件来保存数据文件的MD5校验和?每当我首先写入文件数据时,我会生成它的校验和,然后当我从数据文件读取时,我会生成一个校验和,并将它与前一个进行比较。这将指示我的数据是否完整,但它不允许我回滚到以前的状态(预损坏状态)。我想要一个尽可能轻量级的方法,我已经在使用CPU太多了,每次属性更改都会对我的存储进行读/写更改,总共有数千次。可能数据库会是一个更好的主意。我不能说Java将如何读取损坏的序列化数组,但为了安全起见,让我们假设没有错误检测 在这种情况下,您有两个简单的选择:
- 在序列化数据结构之前,将数据的校验和存储在数据结构中
- 计算最终序列化文件的校验和