我想使用DataInputStream从A发送几个字符串。
我知道如何使用.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 "";
}
答案 0 :(得分:2)
只要你的字符串是<您有65536个字符,可以使用DataOutputStream.writeUtf()和DataInputStream.readUTF()。如果您需要比字符串和基元更复杂的内容,则需要使用ObjectOutputStream
和ObjectInputStream
。
示例(可能包含语法错误):
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()
方法首先获取字符数,然后准确读取多个字符。只要您只是编写/读取字符串,流就可以解决它。
答案 1 :(得分:1)
两个想法:
使用DataOutputStream.writeUTF
和DataInputStream.readUTF
使用像JSON(或XML)这样的“holder”格式,然后构建一个“打印”的JSON数组,然后使用众多的库中的任何一个来解码另一端({{JSON库} { 3}}足以完成任务)