Android ObjectInputStream在不知道对象的情况下读取文件

问题描述

我将我的应用程序从Java重写为Kotlin。一切正常,但现在我正在为用户管理Java到Kotlin的迁移。我的意思是,我有一些信息可以从Java应用程序加载/更改,以使Kotlin应用程序不会崩溃。

但是我对使用以下方式用Java应用程序编写的对象存在一个问题:

{timerdisplay} --> {this.timerdisplay}

我不想在我的Kotlin代码中保留此“ final ObjectOutputStream objectOutputStream = new ObjectOutputStream(new FileOutputStream(file)); objectOutputStream.writeObject(object); objectOutputStream.close(); ”。 即使我用Kotlin代码重新创建此Object,我也面临object,因为Java应用程序未使用java.io.InvalidClassExcetion

serialVersionUID

所以我的问题是:我可以在不知道书写对象的情况下读取文件吗?

我已经尝试了很多想法(例如):

local class incompatible: stream classdesc serialVersionUID = -45563345354522,local class serialVersionUID = 5520756298058281438

但是我得到了一个奇怪的行,其中包含许多特殊字符,但我无法从中构造一个JSON或一个对象(这是文本行和它的屏幕,对于那些丑陋的文本,我们深表歉意。 ):

val line = InputStreamReader(FileInputStream(file)).readText()

weirdLine

(我从我的项目中删除了程序包名称和数据,并替换为��sr&my.personnal.package.app.MyObject�U׉����Lfield1Ljava/lang/String;Lfield2q~Lfield3q~Lfield4q~Lfield5q~Lfield6t0Lmy/personnal/package/app/MyObject$MyEnum;Lfield7q~Lfield8q~Lfield9t/Lmy/personnal/package/app/MyObject$MyEnum2;Lfield10q~Lfield11tLjava/lang/Boolean;xpt)value1tvalue2tvalue3tvalue4tvalue5~r.my.personnal.package.app.MyObject$MyEnumxrjava.lang.EnumxptENUM_VALUE_1ptvalue12~r-my.personnal.package.app.MyObject$MyEnum2xq~tvalue13t value14rjava.lang.Boolean� r�՜��Zvaluexp field1。)

任何帮助您拥有可读对象的人,将不胜感激!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)