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

java - 如何使用 ObjectOutputStream 以及 writeObject() 和 reset() 方法加快两个套接字之间的对象传递?

我正在编写一个应用程序(多人游戏),其中需要通过服务器将对象从应用程序的一个实例传递到另一个(并且非常快速)。

我正在使用ObjectOutputStreamsObjectInputStreams通过套接字获得来执行此操作。

但是,传递的对象的状态会不断更新,这意味着典型的writeObject()方法不会成功(它只写入一次对象,然后在随后调用它时传递对它的引用,这意味着它的实例的值变量从未真正更新过)。

为了“解决”这个问题,我ObjectOutputStream.reset()在每次调用 之后都调用了该方法writeObject(),这确实解决了更新对象状态的问题;但是,它运行得太慢了,我认为这是每次“刷新”时对象都被完整传递的结果。

那么我的问题是,如何更新通过网络传递的对象的状态,而不必完全重写对象?(我假设这是我加快速度的方法;如果我错了,或者如果存在其他方法,请分享)提前感谢您的任何建议!

此外,关于传递的对象的大小:它不是太大...几个布尔变量、几个双精度数组和一些其他次要变量(没有长度为 1000 的列表,每个列表都包含另一个列表)。

0 投票
3 回答
1252 浏览

android - 将序列化对象作为文件存储到 sdcard 中导致 FileNotFoundException

我想序列化一个对象并将其存储sdcard在我的项目名称下,但我得到FileNotFoundException.

我的代码写在下面:

这个问题的原因是什么?
我在模拟器中运行,我的应用程序在 android 3.0 中。

0 投票
1 回答
231 浏览

java - 如何将 java.lang.Object 变成另一种类型的对象?

使用.dat_ Node_ ObjectOutputStream_从Node[]我之前使用的。

如果我能解决其中一个问题,我的问题将得到解决:

  • 将读取Object转换为对象类型Node[],或
  • 像这样读取文件readNode[]();

我不知道这个的正式名称,所以我很难找到答案。

0 投票
1 回答
1074 浏览

java - 使用 BufferedOutputStreams 时 ObjectInputStream 不会初始化

我正在尝试通过套接字发送对象以进行游戏,但它们需要很长时间才能发送并且可能导致游戏挂起。我想使用 BufferedOutputStreams 和 BufferedInputStreams 来发送数据,但是当我在客户端使用 BufferedOutputStream 时,我的 ObjectInputStream 不会在服务器端初始化。奇怪的是没有抛出任何错误。

我只提供所涉及的代码,因为要花很长时间来解释发生了什么。每个游戏初始化两个客户端。

我已经浏览了所有论坛,但找不到任何有用的东西,这让我认为我正在做一些非常新手的事情。谢谢你提供的所有帮助!

0 投票
0 回答
1255 浏览

inputstream - jsch 输入流对象输出流和解组

我们有一个场景,我们试图解组一个 java 对象,将其转换为输入流并使用 JSCH API 将其 SFTP

基本上 -> 我们的目标是强制 jSCH 以 INPUTSTREAM 的形式推送对象,而不是将其转换为文件然后像下面的示例一样将其发送过来:

除了我们想要切换最后一行以使用普通旧的 InputStream 而不与任何文件关联。

根据 jSCH API - 不使用 FileInputStream 是可能的:

关于我们将如何解决这个问题的任何想法?

我们可以使用 ObjectOutputStream 吗?有没有办法获取一个对象并将其解组并将其馈送到 Inputstream 而无需在中间创建文件?

谢谢

0 投票
3 回答
122 浏览

java - 文件未写入设备

我一直在尝试一百种不同的方法来解决我的问题,但由于某种原因,它们简单地不起作用。我正在尝试一种快速而肮脏的方式,以使我的应用程序持久化。它基本上得到了很多在销毁时需要保存的对象,所以我想我会让它把对象放入一个 ArrayList 中,然后使用 ObjectOutputStream 将 ArrayList 写入文件。

我得到了一个类似的算法来再次读取它,但它抱怨没有任何文件可供读取。我知道使用文件进行持久化并不是最佳实践,但正如前面提到的,这应该是一个快速而肮脏的解决方案。(但我现在用在它上面的时间,还不如花在制作数据库上。._.)谢谢!

0 投票
3 回答
3815 浏览

java - 创建一个目录,然后在其中创建文件

我想为一个名为“f”的文件创建一个 ouputStreamWriter 对象,说“out”。我希望这个文件 f 在名为“输出”的目录或文件夹中创建。如果目录“输出”不存在,那么它应该创建它,如果它已经存在,那么它应该在该目录中创建文件“f”。

简而言之,我想要一个名为“输出”的目录,然后我想在我的程序执行期间将不同的文件放入其中。

谁能告诉我如何在java中做到这一点?现在我的以下代码正在当前目录中创建不同的文件。为了方便起见,我想将所有文件放在一个文件夹中。

0 投票
2 回答
2014 浏览

java - 使用 ObjectOutputStream 时估计磁盘上文件的大小

我正在尝试将我的空间数据从表写入文件。但在写入磁盘之前,我需要知道磁盘上数据的确切大小。例如,假设我正在使用以下代码写入磁盘:

我在想磁盘上的文件大小等于:

但实际上,这与磁盘上的实际文件大小有很大不同。

我还注意到,即使使用 ObjectOutputstream 创建一个空文件也会导致磁盘上有 4B 空间。

有关如何计算磁盘上文件大小的任何帮助?

(我不能将数据写入磁盘然后读取实际大小。这会降低性能。相反,我需要根据存储在内存中的数据值来计算磁盘上的数据大小。)

0 投票
2 回答
1466 浏览

java - 每次都必须重新创建 ObjectOutputStream

我见过一些人问过类似的问题,但任何人发布的唯一答案是你不应该这样做。

但我已经对它进行了两种方式的测试 - 它只能以这种方式工作。

服务器端

客户端

这整天有效。

但如果我把它改成这个——

(我在代码的更远处创建了输入和输出流)

然后我第一次从服务器成功接收到正确的数据 - 但此后每次 - 我只收到相同的数据而不是更新的数据,并且没有错误说明原因。

0 投票
1 回答
165 浏览

java - 尝试从 ObjectInputStream 读取时 Android 中的 ClassCastException

我正在处理的 android 应用程序有问题。我通过 Wi-Fi 连接了两部手机,并使用ObjectOutputStream/将自定义序列化类从一部手机传递到另一部手机ObjectInputStream。两部手机上的课程是相同的,但是当我尝试在一部手机上阅读时,我得到了ClassCastException.

我读入了对象和发生错误的行:

这是我写出的方式sMessage

这是我的sMessage课:

我在两部手机上都有这门课,正如我所说的,它们是相同的,所以我不太清楚为什么我会得到一个ClassCastException.

如果有更多信息会有所帮助,我很乐意发布并感谢任何帮助。