问题标签 [dataoutputstream]
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.
android - 为什么 DataOutputStream 会丢失一个字符?
我有一个简单的连接活动:
使用 PrintWriter outTest 我测试服务器的可用性:如果用户没有 Internet,或者服务器不工作,我使用 Boolean shouldContinue 暂停 Thread。
检查服务器的可用性:
问题在于,当我不使用
并将数据发送到服务器,如下所示:
一切都很好,但如果我使用它,在服务器上我会看到这样的消息“#kokoko” - 我丢失了消息的第一个字符并且我的套接字被压碎了!请帮帮我
java - DataOutputStream 和 printwriter 有什么区别?
DataOutputStream
和 和有什么不一样printwriter
?
java - Java 原始数据类型 byte 和类 Byte
背景:我有一个任务,我将在非常有限的范围内通过套接字传递信息。每条消息最多可以有 10 个字节,我想我只发送一个字节(因为一个字节足以在协议中发出 256 个不同状态的信号)。现在我开始四处寻找有关此的信息,并且遇到了很多问题。如果可以的话,请纠正我的假设错误并回答我的字面问题。
所以有原始数据类型字节(基本上是介于 -128 和 127 之间的数字,对吗?)。如果我使用
...我将正确的数字打印到控制台,如果我尝试分配超出限制的值,编译器会抱怨。
然后我们有 Byte 类,它显然是从 byte 数据类型(或 API 中所说的 int )创建一个 Byte 对象:
这也会产生预期的结果,并且 20 会打印到控制台,如果我尝试使用高于 127 的数字,编译器会抱怨。
1.数据类型byte和类Byte有什么区别?是否主要是因为该类提供了很多方法,例如 Integer 类为 int 类型提供的方法?
下一个片段会产生奇怪的结果(对我来说):
2. 读取输入,然后输出将输入解释为十进制形式的 ASCII 字符(例如,1 返回 49),然后是数字 13 和 10 的另外两行。这是为什么?
(如果我将 d 声明为 Byte 或 byte 都没有关系,结果是相同的,我已经混合使用从 Byte b 获取值等等,但是这三行(或更多)始终是结果我想要的只是输入马上回到我身上)
基本上我对此有点困惑,但最后,我想要的只是发送这些单个字节的合理方式,当我发送 34 时,我希望对方接收 34,仅此而已。
3. 假设我不使用 Byte 类,只想通过流发送类型字节。所有常规流和阅读器似乎都只读取一个 int (我假设这意味着它们将阻塞,直到它们具有至少两个字节的输入,而我只会发送一个字节)。我是否被迫使用DataInputStream
以及 DataOutputStream
必须将类型字节包装在对象字节中的位置,还是有其他方法?
所有这一切都让我怀疑我是否可以相信一个对象 Byte 真的只是相当于一个数据字节,仅此而已......我很困惑 :(
提前致谢!
java - 等效于Objective C中Java的DataOutputStream
我目前正在开发一个目标 C 中的项目。
我需要使用 Java 类的函数,如 ,DataOutputStream
和writeChars
Class的一些函数。writeLong
flush
ByteArrayOutputStream
具体来说,我可以在与DataOutputStream
andByteArrayOutputStream
类具有相同功能的 Objective C 中使用什么?
这是我需要转换成 Objective C 的代码。
java - Java DataOutputStream 在断开连接时不会抛出 IOException
DataOutputStream
当我拔掉电缆时不会抛出IOException
错误,我的代码有什么问题?
这是我的代码:
一旦我重新插入电缆,数据仍会发送到服务器。
java - Java发送消息线程
我使用套接字和数据输入/输出流用 Java 编写了一个带有客户端和服务器端的游戏。服务器端有时需要在“for”循环中向所有用户发送消息,但由于写入套接字可能会阻塞我为每个向他发送消息的用户创建了一个线程(以及为每个用户监听的另一个线程)传入消息)。发送线程是建立在这个想法上的:
不幸的是,run() 方法一直在运行,所以我想插入一个 sleep 命令,以实现如下效果:
但这可能会导致线程在有消息要发送时进入睡眠状态,例如当 write() 方法在 run() 方法进行 isEmpty() 检查后调用时,返回 true,但尚未启动睡觉。我真的想不出一种方法来避免 sleep(0) 的这个问题,有人知道吗?还是我在这件事上走错路了?
谢谢一堆。
java - 将 ByteArrayOutputStream 传递给 DataOutputStream 的构造函数
我知道这可以使用包装器模式来完成,但我很难理解以下代码是如何工作的。
将ByteArrayOutputStream
引用传递给 of 的构造函数DataOutputStream
意味着DataOutputStream
将转换为ByteArrayOutputStream
,但是如何?
在此之后,os.writeUTF("String");
如何DataOutputStream
转换为ByteArrayOutputStream
.
幕后发生了什么?有人可以解释一下细节。
java - 将字节数组保存到文件时显示的丑陋字符
我在服务器中有一个文本文件。我正在从客户端下载该文件。我已经给出了应该保存的文件路径fi
。
创建的文本文件,其中包含一些难看的字符,而不是字符串。我该如何纠正它?
输出的格式是;
打印文本文件中的一个字符,然后是粗体NUL 。这是什么,我怎样才能摆脱它?
更新
更新 2
s
是这里socket
。re
已初始化为BufferedReader re;
java - 客户端不接收来自服务器的 DataOutputStream 的输出
我目前正在尝试编写我的第一个客户端>服务器系统来通过网络来回传输包含字符串的数据包。但是我遇到了以下问题:客户端向服务器发送消息,服务器接收消息,处理消息,然后应该向客户端发送回复,但客户端从未收到此消息并且挂起等待来自服务器的响应。这是代码:
服务器:
客户:
java - 写入 DataOutputStream 并使用缓冲区从 RandomAccessFile 读取时出现问题
使用此代码,我在 f.read() 处获得了索引越界异常。我可能错误地使用了参数偏移量和长度。不是每次我读入一个块时,我都应该将偏移量移动到块的大小吗?也许我只需要一次阅读更少并使用更小的缓冲区?
目前我有这个实现工作,但我担心内存使用:
谢谢你的帮助!