问题描述
所以我正在使用Java(JDA库)编写一个不和谐的机器人,并且正在制作数据库系统...
首先,我将YML和JSON写入文件,然后开始使用ObjectInputStream
和Output版本对对象进行序列化。
然后,我有了将Windows注册表用作数据库的想法,因为它占用的存储空间更少,并且效果更好,因此我重新编写了所有内容以使用注册表。有了JSON读取器和写入器,就没有问题了,它可以写入和读取包含JSON文本的字符串值。
使用序列化的对象可以进行书写,但不能读取。
我将序列化的数据写入ByteArrayOutputStream
,然后使用一种方法将字节写入注册表...
通过读取,我创建了一个ByteArrayInputStream
,其中包含我从注册表读取的字节,我在控制台中记录了字节,因此我知道它成功读取了字节并将其传递给{{1} }。
然后到ByteArrayInputStream
,它只是...挂起,没有引发错误,它没有挂在ObjectInputStream(<ByteArrayInputStream>)
,它只是挂在我初始化{{ 1}}。它不反序列化任何东西,不返回任何东西,初始化后不打印行...
readobject()
输出(控制台):
ObjectInputStream
解决方法
您正在从baos
流中读取所有字节以将它们转储到控制台,因此该流为空。在下一行中,ObjectInputStream构造函数尝试读取流标头,并且由于流为空,因此它阻塞了等待数据的时间。