如何解决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()
(我从我的项目中删除了程序包名称和数据,并替换为��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 举报,一经查实,本站将立刻删除。