我一直在尝试通过套接字连接发送多个属性实例,使用 PrintWriter/BufferedWriter 进行发送,使用 InputStreamReader 进行读取,所有这些都通过循环发送和接收。
发件人:
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
for (int i = 0; i < vector.size(); i++) {
Properties mail = (Properties) vec.get(i);
mail.store(bw, line);
bw.newLine();
bw.flush();
}
接收者:
ireader = new InputStreamReader(socket.getInputStream());
Properties[] mails=new Properties[c];
for (int i = 0; i < c; i++) {
Properties p;// = new Properties();
mails[i] = new Properties();
mails[i].load(ireader);
}
但是只有在完成整个循环之后,我才收到接收器发送的最后一个 Properties 对象。这意味着接收器正在加载,直到套接字最终关闭。文档确实说对于 load(),底层阅读器在返回后保持打开状态,但我想我错过了解释“何时”实际返回的部分。如何用一个流读取多个属性?