问题标签 [objectoutputstream]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
127 浏览

java - ObjectOutputStream 建议

我的程序的目标是让它在关闭时保存,并在打开时重新加载。

我有一个驱动程序(包含所有图形),我希望它创建和保存文件。我在互联网上看过很多教程,但他们没有解释的是如何在实际程序中正确实现这个系统。

我是否在我的主要方法中创建 OutputStrema?我是否需要检查是否已创建文件,如果未创建文件,是否需要从中读取?我如何完成这一切?我应该有一个用于退出的 WindowListener 以便它可以保存所有数据吗?

谢谢

0 投票
6 回答
43801 浏览

java - java.io.StreamCorruptedException:无效类型代码:00

所以基本上我在写一个客户端-服务器多人游戏。我有一个 SeverCommunicationThread,如果他收到 RequestForGame 创建一个游戏线程,它会创建一个游戏线程。当我发送 RequestForGame 时抛出异常 java.io.StreamCorruptedException: invalid type code: 00 我认为这是因为两个线程都试图读取相同的 ObjectInputStream,我对它的工作原理不太了解,我只知道如何使用它。您能帮我了解问题所在以及如何解决吗?谢谢 :)

model.addClient 方法虽然我认为问题不在这里

将对象发送到服务器的客户端代理,方法由 GUI 中的用户操作触发

}

0 投票
3 回答
908 浏览

java - 如何使用 ObjectOutputStream 和 ObjectInputStream

细节:

我的程序是一本包含 5 个班级的成绩册,这些班级全部汇总。GradeBook 有课程,Course 有 Categories,Category 有 Grades(所有 ArrayList)。我的程序还有一个 StateManager,它的唯一目的是因为深度聚合返回对对象的引用。在我的驱动程序中,我没有创建 GradeBook 的实例,而是创建了一个 statemanager,它有一个 GradeBook 的静态实例以及返回引用的方法。

我的目标是保存所有这些数据,以便在程序重新运行时重新打开。

问题:

当我编写文件时,我需要做的就是编写 StateManager 对象,对吗?我想我什至已经做到了这一点。我让程序创建一个“gradebook.data”文件。有没有办法在文本程序中打开 .data 文件并查看它是否正确写入?

在哪里使用输入流再次打开对象?在静态主方法中还是在初始化所有图形的方法的开头?

谢谢

0 投票
2 回答
2082 浏览

java - 将对象附加到 .txt 文件

我正在尝试在“序列化”一章末尾的练习中给出的程序。

该程序要求我声明一个 Person 类,它只封装了 Name 和 Address 类型的两个数据成员,它们也是类。然后我必须从键盘上获取一系列名称和地址,创建对象并将它们写入文件。但是,如果文件已经存在,则必须将对象附加到现有文件中。我的程序第一次运行完美,但第二次,当我尝试回读附加记录时,我得到一个异常

我对此进行了一些研究,发现 StreamHeader 只能编写一次并且附加会破坏它。有什么办法吗???
对象编写代码是:

0 投票
2 回答
692 浏览

java - 发送更改的哈希图,但使用 ObjectOutputStream 和 ObjectInputStream 获得相同的哈希图

上面的代码来自两个文件。运行它们时,控制台会打印相同的结果:

这怎么可能发生?

0 投票
1 回答
1106 浏览

java - (objectinputstream) ObjectInput.readObject() 给了我一个空对象

我有这堂课:

我使用这些方法将类(SaveState 对象)存储在 sdcard 中,并再次将文件中的对象读取到对象中:

我存储对象,每次我的应用程序关闭时,我每次打开我的应用程序时都从 sdcard 读取对象,它工作正常。当我创建更新版本的应用程序(1.01)时,问题就来了。当我启动应用程序并尝试从 sdcard 读取文件时,文件被读取,但对象类的所有变量都是空的,而且它们真的不为空。

为什么我的代码不能正常工作?我应该怎么做才能修复它?

0 投票
3 回答
1422 浏览

java - 无法从 .dat 文件中读取可序列化类

我尝试编写一个密钥持有者,我想使用 ObjectOutputStream 将密码写入 .dat 文件,然后使用 ObjectInputStream 读取它们。这是我编写对象的代码:

这似乎可行,但是当我尝试再次读取文件并将对象放入我的 PWlist 数组中时,它说 PinPW 不可序列化,即使 PinPW 实现了 Serializable 并且已导入。PinPW (Info) 的基类也实现了 Serializable 并导入它。这是我读取文件的代码:

PWlist数组是一个Info数组,PinPW和longPW扩展了Info。

我该怎么做才能解决这个问题?

0 投票
1 回答
866 浏览

java - 将 ObjectOutputStream 传递给另一个类

我正在开发一个在客户端/服务器系统中使用的 GUI 程序,它将数据保存在Vector. 我有一个ObjectOutputStream并且ObjectInputStream是在我建立连接时创建的,但是当我尝试打开一个时我不确定如何将它传递给新类。在我的Startup类中,我有一个Serializable对象 ( Message m),它被创建并传递给不同的类以修改不同的字段,以及在客户端和服务器之间建立连接

在我的Startup课堂上,我有这个代码......

WhatToDo课堂上我有这个代码......

如果我像在 中那样做新的ObjectOutputStream,我将创建一个到服务器的新连接。我希望使用在中创建的现有。提前谢谢你的帮助!ObjectInputStreamStartupStreamsStartupWhatToDo

我正在使用ActionListener带有按钮的按钮,因此需要将流保存在构造函数中以供以后在ActionListener.

0 投票
3 回答
423 浏览

java - Java反序列化:从缓冲区读取时如何知道何时到达对象的末尾?

我试图想出一个好的标题,但似乎失败了。这是我的问题:

我正在从套接字读取数据。缓冲区中包含的数据是一个序列化的对象。一旦数据被完全读取,我就可以创建一个 ObjectInputStream 并使用 readObject 来读取数据。

我的问题是,因为我的套接字类正在读取字节......我怎么知道我什么时候收到了完整的对象?对象指示器似乎没有结束,我尝试寻找序列化字节码的突破以查看是否可以找到长度字段,但序列化字节码在谷歌可以找到的任何地方都没有得到很好的解释。

我收到的对象是哈希映射(java.util.Map),如果这有区别的话。

这是我正在使用的部分代码:

所以,我的问题是,当我阅读 m_DataIn 时,我如何确定我已经到达对象的末尾?

注意:我不能以任何方式修改我从中接收这些对象的服务器。这不是我的代码。

谢谢。

查尔斯。

0 投票
1 回答
161 浏览

java - 如何专门实现这个子类来绕过附加目标文件?

我在我的程序中附加目标文件时遇到了问题。我找到了这个答案。

但是,我不知道如何继承一个AppendableObjectOutputStream. 谁能更详细地教我怎么做?