问题标签 [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 回答
168 浏览

android - 为什么“toByteArray()”不执行?

我一直在努力解决这个问题好几个小时,这太令人沮丧了!我正在序列化一个“哈希表”,这是我传递给这个方法“saveDataToDisk(Object o)”的对象,我在一个普通的java项目中测试了它,它正确地执行了“toByteArray()”,但是在Android中每当它碰到 toByteArray() 时,它总是会陷入困境......有什么想法吗?先感谢您。

0 投票
1 回答
112 浏览

java - 对象输出和输入问题,只打印输入的第一行

我正在为班级制作聊天服务器,并且在为离线用户记录消息时遇到问题。数据作为对象附加到日志文件中,随着您记录的更多,它的大小会增加。当我以收到消息的用户身份登录时,它只返回发送的第一条消息。我花了很多时间来解决这个问题,无法弄清楚我错过了什么。

输入:

输出:

0 投票
1 回答
2087 浏览

java - Java ObjectOutputStream 和更新文件

我在解决一个实现问题时遇到了麻烦,我有一个类,它的行为类似于列表,但不是在某个集合中保存文件,而是将它们保存在磁盘上。

当我想向列表中添加一些元素时会出现问题。在我的文件的开头,我有一个 int 告诉我列表中有多少对象,但我无法找出更新这个值的优雅方法。我有这样的事情:

我试图使用这样的东西:

但是正如我观察到的那样,它会将一些数据写入文件的开头,一些序列化标头或某事,我如何更新文件中的单个条目或如何更改

“指针”写在文件的开头?

0 投票
1 回答
1798 浏览

java - 发送图像 ObjectOutputStream

我遇到了一些我无法想出下降解决方案的东西。我从服务器向客户端发送了一些字符串 [] 消息,但现在我也想发送图像。问题是我检查客户端部分的对象,而不是字节 [],这给我处理图像时遇到的问题。

现在我将它用于传入的字符串 []:

但是现在我希望这个流能够同时处理 String[] 和 bytes[],任何建议都会很棒,我迷路了 :(

我想要这样的东西:

但这没关系,因为 o = input.readObject() 在图像文件到来时给了我这个:

12-05 23:00:20.255:W/System.err(16157):java.io.StreamCorruptedException:格式错误:ac

写入字节的代码:

0 投票
2 回答
8145 浏览

android - 为什么 ObjectOutputStream.writeObject() 会抛出 IOException?

我目前正在开发一个 Android 应用程序,该应用程序会根据特定事件(例如电池电量)自动更改手机状态。我有一个 Profile 类,它有 3 个主要参数、名称、事件和状态(事件和状态是另外 2 个自定义类)

在我的 ProfileEdit 类中,有各种组件,例如 EditText 和 Spinner 供用户配置配置文件。我需要访问显示每个配置文件的 ListActivity 类中的 Profile 类型的 ArrayList,以及获取当前 ArrayList 并添加新配置文件或更新一个配置文件的 ProfileEdit 类。

我必须首先这样做的想法是使用 ObjectOutputStream 将我的 ArrayList 写入手机 sd 卡,然后任何需要它的类都可以检索它。然而,到目前为止,我这样做的尝试最终只是抛出了一个 IOException。我的代码如下:

profile 对象是我要写入文件的 ArrayList。我无法弄清楚为什么这会引发异常。我尝试通过调用 writeObject("Hello"); 将对象更改为字符串;并且不再抛出异常,所以我只能假设它是 ArrayList 的问题。我的印象是 ArrayList 类实现了可序列化,而我的 Profile 类也实现了可序列化,尽管它没有实现同样的功能。

或者,如果有更好的方法可以让我的 ProfileList (ListActivity) 和 ProfileEdit 类访问同一个 ArrayList,请告诉我。

编辑:这是 IO 异常堆栈跟踪:(ProfileEdit 类的第 114 行是 writeObject() 行)

0 投票
1 回答
1308 浏览

java - 读取签名文件后无法验证签名

sign.verify(signature) 在 verifySignature 方法中返回 false;我认为这与我如何将输出流和输入流与 signedobject.obj 文件一起使用(证书通过有效性)有关。我可以从文件中正确读取消息。

代码:

verifySignature(KeyStore) 方法:

0 投票
2 回答
6166 浏览

java - Android 和 ObjectOutputStream 到资源文件

我对 Android 开发真的很陌生,我的第一个项目是一个简单的游戏,它有一个显示和一个逻辑部分。我想在游戏中添加一个保存功能,但我在实现时遇到了问题。

我想用 ObjectOutputStream 这样做(只包括重要部分)

但我总是收到一条错误消息,上面写着“没有这样的文件......”。即使我在原始目录中创建了一个“testfile.txt”,它也会说同样的错误。

请帮助我,我做错了什么?

0 投票
2 回答
5064 浏览

java - ObjectInputStream.readObject() 在套接字通信过程中永远挂起

我在linux系统上遇到过socket通信的问题,通信过程如下:客户端发送消息请求服务器做计算任务,任务完成后等待服务器的结果消息。

但是如果任务花费了很长时间,比如大约 40 分钟,客户端会挂机等待结果消息,即使从服务器端,结果消息已经写入套接字以响应客户端,但它可以正常如果任务花费的时间很少,例如一分钟,则接收结果消息。此外,此问题仅发生在客户环境中,通信过程在我们的测试环境中表现正常。

我怀疑这个问题的原因是客户环境和测试环境之间socket的默认超时值不同,但是这两个环境的后续值是相同的,无论是客户端还是服务器。

客户端上的代码如下:

服务器上的代码就像,

为了解决这个问题,我添加了flush和reset方法,但是问题依然存在:

所以有谁知道我应该做些什么来解决这个问题。我猜是环境设置的原因,但不知道是什么环境因素会影响socket通信?

而socket使用Tcp/Ip协议进行通信,问题与任务时间长有关,那么tcp的哪些值会影响socket通信的超时呢?

在对日志进行分析之后,我发现在将消息写入套接字后,没有抛出/捕获异常。但总是在 15 分钟后,用于接受来自客户端的请求的服务器端的 objectInputStream.readObject() 代码片段中存在异常。但是socket.getSoTimeout的值是0,所以抛出了一个Timed out Exception就很奇怪了。

那么为什么会抛出 Connection Timed out 异常呢?

0 投票
1 回答
1399 浏览

java - Java 序列化。字段更改值

我有以下问题。我可以将事务状态设置为“开始、结束或正在进行”。我设置了这个,然后将我的 Transaction 对象序列化到服务器,由服务器检索它。第一次像魅力一样工作(当事务处于启动模式时),但是当我重新发送对象时,这次处于“正在进行”模式,服务器继续在“启动”模式下看到它。我已经在序列化之前的那一行和反序列化之后的那一行测试了代码,这绝对是问题所在。任何帮助将不胜感激。相关代码片段如下:

序列化

反序列化

和事务类:

0 投票
2 回答
1851 浏览

java - ObjectOutputStream 不发送数据

客户端代码:

服务器代码:

服务器从不接收字节。它只是等待来自客户端的字节,它永远不会到来。我不确定为什么它没有发送或收到。任何帮助深表感谢。