PRINTWRITER PRINTLN(文字列S)メソッド:\ R \ Nがサポートされていませんか?

StackOverflow https://stackoverflow.com//questions/10699776

  •  12-12-2019
  •  | 
  •  

質問

マルチスレッドチャットクライアントサーバアプリケーションを作成しています。 サーバー接続で、私はPrintWriter PrintLn(文字列s)メソッドを使用して、クライアントへの応答を書き込みます。

PrintWriter out;
String msg = in.readLine();
String response = "";
if (msg.startsWith("nick: ") {
    response = protocol.authenticate(msg); //returns a String that says "welcome " + nick
    //if there are messages pending for the author who logged in add them to the response String
         response+="\r\n"+textmsg;
} else { ... }
out.println(response);
.

BufferedReader Readline()メソッドを使用してサーバーから読み取るクライアントを実行すると、Welcomeメッセージが表示されますが、クライアントの保留中のメッセージは取得されますが、

を使用している場合
response+=textmsg;
.

それは私が\ r \ nを使っているからですが、それらの2つのメッセージの間に新しい行を印刷する必要があるからです。私は何をすべきか?

編集回答を受け入れた後:最後に、私はOutputStreamとInputStreamを使用することを選択して、\ r \ nであっても私が欲しいすべての種類の文字列を送信できます。

役に立ちましたか?

解決

出力の各行ごとに1回呼び出すか(2回)、またはprintlnなしで\nのみを使用します。それはJavaの標準の改行CHAR、\rはWindows固有の行末シーケンスです。もちろん、クライアントの終わりには、\r\nを2回呼び出す必要があります。readLineを1回呼び出して2行を取得する方法はありません。カスタム区切り文字が必要な場合は、readLineではなく、他のものを使用する必要があります。

他のヒント

PrintWriterを使用してPrintLNを使用してください。

printlnを使用するか、%n

printfを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top