gpt4 book ai didi

java - BufferedReader 不读取最后一行

转载 作者:行者123 更新时间:2023-12-01 16:43:10 33 4
gpt4 key购买 nike

因此,我正在使用 Java 套接字编写服务器-客户端结构,其中客户端发送一个字符,指定他想要使用的服务器的功能,然后在另一行中发送服务器将修改的文本。问题是服务器完美地读取了除退出字符之外的所有字符,退出字符在输入读取时卡住了。

但这里有一个棘手的事情:如果我使用 println(option) 它可以工作,但是如果我使用 print(option + "\r\n") 我需要在缓冲区上写入其他内容,否则它将无法工作,并且由于它是用于类的,因此他们让我使用 print(option + "\r\n")

我确信客户端工作完美,所以我将只留下服务器中有趣的部分:

while (!opcion.equalsIgnoreCase("F")) {
opcion = in.readLine();
if (opcion.equalsIgnoreCase("F")) {
out.println("VALE");
} else if (!opcion.equalsIgnoreCase("L") && !opcion.equalsIgnoreCase("B")) {
out.println("Opción inválida");
in.readLine();
} else {
texto = in.readLine();
aux = texto.split(" ");

for (String s : aux) {
if (s.length() > 0) {
res.add(s);
}
}

if (opcion.equalsIgnoreCase("B")) {
Collections.shuffle(res);
}

StringBuilder finalRes = new StringBuilder();
for (String s : res) finalRes.append(" " + s);
out.println(finalRes.toString().substring(1));
}
}

变量opcion被初始化为一个空字符串,inout是我的教授给我的输入和输出缓冲区,所以他们很好。

顺便说一句,我知道我可以在客户端上添加一个 if 语句,这样如果选项是“F”,它就会发送一个包含任何内容的新行,但如果可能的话,我想把它清理干净。

最佳答案

如果有人遇到类似问题,here是一些有用的信息。由于教授给我的限制,它不能解决我的问题,但它可以解决一般目的。

关于java - BufferedReader 不读取最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61822068/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com