使用数据输出流和数据输出流



我想使用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()方法首先获得字符数,然后读取相应数量的字符。只要你只是写/读字符串,流就可以计算出来。

两个想法:

  • 使用DataOutputStream.writeUTFDataInputStream.readUTF

  • 使用JSON(或XML)等"持有人"格式,并构建一个JSON数组,您"打印",然后在另一端使用任何众多库进行解码(JSON库在json.org是足够的任务)

相关内容

  • 没有找到相关文章

最新更新