问题标签 [datainputstream]
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.
java - 由于原始 int 值而获取 OptionalDataException,但如何在 JAVA 中避免它
我的代码-
和一个 Person bean 文件。
我得到了例外
java.io.OptionalDataException at java.io.ObjectInputStream.readObject0(Unknown Source) at java.io.ObjectInputStream.readObject(Unknown Source) at com.practise.interview.nio.ObjectStreamExample.main(ObjectStreamExample.java:62)
这是因为我认为 -
当流中的下一个元素是原始数据时,尝试读取对象。在这种情况下,OptionalDataException 的长度字段设置为可立即从流中读取的原始数据的字节数,并且 eof 字段设置为 false。
但是如何避免它,因为我知道我设置了一个原始值,所以要避免。?
java - 无法从套接字读取字节数组
我正在编写一个应用程序,我在其中通过 java 中的套接字传输字节数组。
客户端字节数组的生成如下:
在服务器端我写
我已经通过写入文件来检查加密和解密过程,它可以正常工作。
我在两端使用 DataInput 和 DataOutput 流。
你能告诉我我的代码有什么问题吗!
java - 在 Java 中的 DataInputStream 中来回走动
我正在使用 DataInputStream 读取视频文件。然后我使用一个字节数组为每一帧一个接一个地读取数据,然后连续显示它们。我的问题是,如果我想再次查看前一帧或未来的帧怎么办?是否有可能退后一步,或者有其他可能的方式吗?
java - Java:与 DataInputStream 中的 dis.read() 和 dis.readUTF() 的区别
简单的问题。
dis.read()
和有什么区别dis.readUTF()
?
例如,dis.read()
只读取字节数组和dis.readUTF()
访问String
类型。
这是正确的吗?
如果服务器有实现dis.readUTF()
,它不能读取字节流?
java - DataInputStream 不读取小文件
我正在编写一个读取存储在设备上的小文件的黑莓应用程序。出于某种原因,DataInputStream 只会读取大于 3kb 的文件(经过几次测试后我的估计)。有谁知道为什么会这样?
编辑:我试着做 dis.available(); 对于不从文件中读取的小文件,它返回 0,从将要读取的较大文件中返回 0。这令人困惑,因为它应该读取文件中的字节数。
java - Java DataInputStream 与 BufferedInputStream
我正在寻找一种有效的解决方案来接收和处理从套接字连接到服务器的异步消息(大小不一)。这是一个很好的带宽量(可能是 250 kB/s 的稳定状态,并且可以有高达 1 MB/s 的短脉冲)。目前我正在使用 DataInputStream,但在忙碌的时候我会断开连接(如果队列积压变得太大,服务器会断开客户端的连接)。
谁能确认 BufferedInputStream 是否可以更好地工作?我读过它会一次检索大块数据,而不是逐字节检索,因此操作系统调用更少。
谢谢!
java - 有没有办法通过套接字发送带有 DataOutputStream 的 Point 数组?
我想通过套接字发送带有 DataOutputStream 的点数组(Point points[] = new point[20]),并能够在另一端使用 DataInputStream 正确读取它。我不能单独发送每个元素,它必须作为整个数组发送并且能够被解释为整个数组。
android - Android 获取 UTFDataFormatException 从文本文件中读取 UTF
我在我的 Android 应用程序的事件日志中注意到我收到了 UTFDataFormatException 错误。我正在读取的文件是由我的应用程序编写的,尽管它存储有关用户故事的信息,因此它可以包含任何类型的字符/字符串。我想知道读取/写入某些字符是否有问题?
我使用以下方法编写:
我阅读使用:
我记录的一些错误堆栈跟踪是:
我已经查找了解码方法的来源,但我不明白发生了什么/为什么它失败了:
有任何想法吗?
c# - Android中DataInputStream是否只接收2048字节的数据?
从 PC(服务器端)C#.Net 应用程序必须通过 Wi-Fi 将 22000 字节的数据发送到 Android 设备(客户端)。但dataInputStream
在 Android 设备中仅显示 2048 字节。
我对以下内容感到困惑:
- PC只能发送2048字节的数据吗?
- 或者,Android 设备是否只有 2048 字节的容量来接收数据?
或者,
dataInputStream
即使在设备收到所有字节后,是否也只显示 2048 字节?If (data_received <= 2048 bytes) 以上代码完美运行;
java - 是否有一个类在 Java 中公开一个无缓冲的 readLine 方法?
我正在清理我们工作中的一些代码库,其中一个较旧的类用于读取和写入数据。此数据是 US-ASCII 编码字符串和二进制编码原语的混合。
当前实现使用DataInputStream,但正如您在文档中看到的那样,readLine()
由于与将字节转换为字符相关的问题,该方法已被弃用。虽然这个编码问题并没有真正为我们弹出,但弃用是一个问题,因为它已经不适用于 OpenJDK 7 的某些版本,并且弃用意味着它可以在将来完全删除。“官方”替代方案是使用readLine
BufferedReader ,但我们无法使用 DataInputStream 进行完全交换,因为 BufferedReader 无法真正处理二进制编码的原语。
“混合”这两个类的问题在于,当 BufferedReader 从流中缓冲出来时,它会推进流标记。这意味着readDouble()
从 DataInputStream 对方法的后续调用将因 IOExceptions 或 EOFExceptions 而失败,因为流标记的实际位置不是它“应该”在应用程序逻辑的上下文中的位置。
我研究了某种 hacky mark()
/reset()
策略,但有时流由不支持mark()
/的 FileInputStream 支持reset()
。
除了更改我们的数据协议以将原语写成字符或编写我自己的实现readLine()
(这令人惊讶地不平凡)之外,有没有办法实现这一点?在这一点上,我什至愿意考虑一个外部库。