java - 使用数据输入流和数据输出流

标签 java arrays datainputstream dataoutputstream

我想使用 DataInputStream 将多个字符串从 A 发送到 B。

我知道如何使用 .write() 发送这些内容,但我不确定分隔字符串的最佳方法。事实上 - 经过研究,似乎不可能,除非我在字符串中添加一个字符并在 B 处分割。

将考虑使用DataInputStream的任何替代方案。我打算创建一个Array并将其发送出去,尽管我不确定如何去做。

到目前为止我已经:

public String getDetails() {       
 System.out.print("Name: ");
 String uiname = scan.next();
 pout.write(uiname);

 System.out.print("Address: ");
 String uiaddress = scan.next();

 pout.write(uiaddress);

 return "";

}

最佳答案

只要您的字符串长度小于 65536 个字符,您就可以使用 DataOutputStream.writeUtf()DataInputStream.readUTF() 。如果您需要比字符串和基元更复杂的东西,则需要使用 ObjectOutputStreamObjectInputStream

示例(可能包含语法错误):

DataOutputStream out = new DataOutputStream(...);
out.writeUtf("foo");
out.writeUtf("bar");
out.close();

DataInputStream in = new DataInputStream(...);
String s1 = in.readUtf();
String s2 = in.readUtf();
// that's all, folks!

writeUtf() 方法在字符串前面加上其字符数。 readUtf() 方法首先获取字符数,然后准确读取该数量的字符。只要您只是写入/读取字符串,流就可以解决它。

关于java - 使用数据输入流和数据输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572970/

相关文章:

java - 如何在 java 中使用 boolean 值对 ArrayLists 进行排序?

sql - 如何使用 Postgres 轻松地从文本字段中获取首字母

java - DataInputStream.read 返回小于 len

java - 转储大量 DataInputStreams 是不好的做法吗?

java - ActiveMQ 5.x 和 DurableConsumer

java - http请求得到的字符串会保存在常量池中吗?

c++ - 在 C++ 中从现有数组创建子数组的最佳方法是什么?

php - 使用 jQuery 将 javascript 数组发送到 php

java - 从 C 客户端向 Java 服务器发送字符串时出错

JPanel ActionsListener 中的 Java 按钮不起作用