问题标签 [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 投票
1 回答
1845 浏览

java - 重置 ObjectOutPutStream 以更新新的对象状态?

我想重置 ObjectOutPutStream 以更新新的对象状态。但是为什么没有效果。下面的代码输出“之前”而不是“之后”?我的代码有什么问题?

在此处输入图像描述

0 投票
2 回答
1844 浏览

java - 具有多个客户端的 Java SocketServer - StreamCorruptException

应用程序

我正在用 Java 编写一个客户端/服务器应用程序,它通过使用 ObjectStream 类通过套接字发送对象来进行通信。应用程序中的每个节点大致如下所示:

这里server变量是本节点监听client的套接字,变量是其他节点监听的套接字,以及本节点发送对象的套接字。

我用来将对象写入其中一个客户端套接字的代码如下所示:

我用来处理连接和从节点的服务器套接字读取对象的代码如下所示:

问题

我想我在这里的插座做错了什么。当每台服务器只连接到一个客户端时,一切正常。但是,当多个客户端与同一个服务器通信时,事情变得很糟糕,我从 ObjectInputStream 和其他奇怪的行为中得到了 StreamCorruptedException(放入一个 UpdateRequest 消息的实例,并取出一个 Integer(0) 的实例和一些异常,例如。)

我的直觉告诉我,这两个对象/字节流以某种方式混合在一起,这在尝试反序列化对象时会产生奇怪的结果。我的问题是:为什么会发生这种情况,也就是我做错了什么,我该如何解决?

0 投票
2 回答
11119 浏览

java - 附加到 ObjectOutputStream(写入多个对象,不带关闭流)

免责声明我的问题与以下两个链接不同

问题 1

问题2

  • 上述解决方案的问题在于它们不支持将多个对象写入可附加流而无需关闭流。
  • 如果我打开可附加流,写入多个对象 - 然后在阅读时我可以正确读取第一个对象并尝试读取第二个对象,我得到 EOF 异常。
  • 如果我继续像在对象上写入可附加流的方式,请关闭流。然后再次打开流,写入另一个对象关闭等等。这样我就可以正确读取多个对象。

    /li>
0 投票
1 回答
330 浏览

java - 在 ObjectOutputStream 之后无法投射 POJO

我有一个程序将 POJO 从服务器发送到客户端。对于原始数据类型,String[]或者Boolean它工作正常。当我只使用 getter 和 setter 创建自定义数据类型时,将其从服务器发送到客户端并尝试将其从 Java 对象转换为我的数据类型,我得到异常:

在客户端和服务器的两个实例上,我都可以很好地投射。似乎当我将其推过时,ObjectOutputStream会发生一些奇怪的事情。我也序列化了对象。ObjectOutputStreams 这里有什么陷阱吗?

0 投票
1 回答
6011 浏览

java - 如何使用套接字和 objectoutputstream 发送字符串数组

我有这个发送字符串或整数,但如果我想发送一个字符串数组,我应该使用什么?

提前致谢

0 投票
4 回答
10665 浏览

java - 从随机访问文件中读取对象

我使用 Java 的 FileChannel 类编写了一个文件,该类使用 RandomAccessFiles。我在文件的不同位置写了对象。这些对象大小不一,但都属于同一类。我使用以下想法编写了对象:

现在我想从这样的文件中读取。我不想指定要读取的字节数。我希望能够使用对象输入流直接读取对象。如何做到这一点?

必须使用随机访问文件,因为我需要写入文件中的不同位置。我还在一个单独的数据结构中记录了写入对象的位置。

0 投票
2 回答
2825 浏览

java - 通过套接字发送可序列化对象时出现NotSerializableException?

我试图通过套接字连接发送一个定制的对象。该类实现了可序列化,但是NotSerializableException当我尝试将对象写入套接字时构造函数仍然抛出一个。我将在下面发布相关代码:

这是我的定制课。现在我试图从服务器向客户端发送一个数组列表,但我会在稍后阶段添加其他信息。发送方法贴在下面我的服务器类贴在下面:

这是我从服务器发送的方法。clientCollection是我试图发送的arrayList。

整个客户端类:

}

新的堆栈跟踪:

0 投票
3 回答
1109 浏览

android - 保存没有序列化对象(如 Rect)的序列化类

当活动调用 onDestroy() 时,我试图保存我的序列化对象,但是当我尝试使用 ObjectOutputStream 编写对象时,会抛出 java.io.NotSerializableExeption。

你能帮我么。谢谢

0 投票
1 回答
4817 浏览

java - 通过套接字发送文件后获取“java.io.EOFException”

我正在尝试通过套接字实现基本通信,我现在拥有的是:

  • 服务器开始监听套接字,

    /li>
  • 客户端连接,服务器启动单独的线程与该客户端进行操作,

  • 开放对象输出和输入流,

    /li>
  • 客户端通过该流发送两个 i Doubles、String 和 Long(每个都刷新),

    /li>
  • 服务器通过先前打开的流成功接收这些对象,

    /li>
  • 现在是“困难的部分”,

  • 客户想要发送文件,因此打开不同的输出流(不是对象输出流)并发送文件,

    /li>
  • 服务器接收文件(也使用简单的输入流而不是 ObjectInputStream),

    /li>
  • 到目前为止一切正常,文件已收到,但现在服务器对该文件执行一些耗时的处理,然后将结果与结果一起发送给客户端,

    /li>
  • 客户端应该收到完成整个通信的结果,

    /li>

不幸的是,客户端的最后一步失败了,但有异常:

我希望客户端在发送文件后阻止等待服务器响应,但是在发送文件后它突然以异常结束。我很确定我在简单流和对象流之间切换时做错了。

有人知道我应该改变什么才能让它工作吗?

先感谢您!

0 投票
2 回答
3073 浏览

java - 无法通过 Java 中的 ObjectInputStream 发送对象

我正在编写一个使用对象输出和输入流的应用程序。但是我有一个问题,因为我无法正确发送我的对象。我把它写到流中,服务器给了我一个未找到的类异常,即使客户端和服务器都有完全相同的这个类的副本(唯一的区别是包名)和相同的序列号。这是我的课:

那是我要发送的对象的类。这是客户端代码:

(它只是为了测试而编写的)

这是服务器代码的一部分(是的,它是多线程的):

我现在很困惑。因为我不知道为什么会发生这样的事情。

我认为最重要的是,当我用字符串替换 Message 时,以下代码表现良好。