我想使用 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() 。如果您需要比字符串和基元更复杂的东西,则需要使用 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() 方法首先获取字符数,然后准确读取该数量的字符。只要您只是写入/读取字符串,流就可以解决它。
关于java - 使用数据输入流和数据输出流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15572970/